Создание функций и под программ.

VictorArx

★★✩✩✩✩✩
22 Мар 2021
471
78
И снова здравствуйте! Изучаю создание методов. С одним методом код работает. Когда пишу второй blink, пишет, что он не декларирован. Где напортачил?
C++:
int pot = A0;
int buttonPlus = 2;
int buttonMinus = 3;
int value=0;
int bright = 0;
int led = 11;

void setup() {
  // put your setup code here, to run once:


  pinMode(buttonPlus, INPUT);
  pinMode(buttonMinus, INPUT);
  pinMode(led, OUTPUT);
}

void loop() {
  myFunction();
blink();

}
void myFunction()

{
  if (digitalRead(buttonPlus) == HIGH)
  {
    bright += 5;

  }

  if (digitalRead(buttonMinus) == HIGH)
  {
    bright -= 5;

  }
  bright = constrain(bright, 0, 254);
  analogWrite(led, bright);

  delay(50);

void blink()
{value= map(analogRead(pot),0,1023,0,255);

}
 
Изменено:

xof

★✩✩✩✩✩✩
24 Окт 2020
123
44
Ну чтобы начало компилироваться, нужно фигурные скобки поставить после void blink()
C++:
void blink()
{}
Правда непонятно что вы хотите от пустого метода ?
 

VictorArx

★★✩✩✩✩✩
22 Мар 2021
471
78
Правда непонятно что вы хотите от пустого метода ?
Я знаю, что туда нужно дописать, только составлял код по немногу и он сразу выдал ошибку.Дописал команду в фигурные скобки, всё равно не помогло.
 
Изменено:

xof

★✩✩✩✩✩✩
24 Окт 2020
123
44
Если бы Вы пользовались автоформатированием как Вам раньше советовали многократно, Вы бы скорее всего заметили что в 40й строчке не хватает фигурной скобки }.
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,188
1,280
Москва
Иногда ардуино ИДЕ очень хочет что бы функции были декларированы раньше, чем они используются. Бывает от этого помогает перезагрузка ИДЕ
Но вообще лучше придерживаться правил. Сначала функция должна быть хотя бы декларирована, а уже потом ее можно использовать. Реалиазация функции может быть и ниже.
Декларация функции:
void myFun();
Реализация функции:
void myFun() {};
 
  • Лойс +1
Реакции: Wan-Derer

VictorArx

★★✩✩✩✩✩
22 Мар 2021
471
78
Низкий Вам поклон! Дал маху, не заметил фигурных скобок. Болван, согласен.
Вот сколхозил. Есть желание, можете проверить работу. У меня работает, как задумывал.
C++:
int pot = A0;
int buttonPlus = 2;
int buttonMinus = 3;

int bright = 0;
int led = 11;
int value = 0;
void setup() {
  // put your setup code here, to run once:


  pinMode(buttonPlus, INPUT);
  pinMode(buttonMinus, INPUT);
  pinMode(led, OUTPUT);
}

void loop() {
  blink();
  myFunction();


}

void blink() {
  bright = map(analogRead(pot), 0, 1023, 0, 255);


  analogWrite(led, bright);
  delay(10);

}

void myFunction() {


  if (digitalRead(buttonPlus) == HIGH) {
    value   +=   5;


  }
  if (digitalRead(buttonMinus) == HIGH) {
    value  -=   5;

  }
  value = constrain(value, 0, 254);
  analogWrite(led, value);

  delay(10);





}
 
Изменено: