expected unqualified id-before '/' token

/* Обработка нескольких состояний
* 22.05.2019
*/

#define button 3                        //Нажать кнопку на D3
#define lowbeam 5                       //Ближний свет на D5
#define highbeam 6                      //Дальний свет на D6
#define gate 7                          //Врата на D7

/------------------------------------------------------------------------

int state = 0;                          //целое число для хранения текущего состояния
int old = 0;                            //целое число для хранения последнего состояния
int buttonPoll = 0;                     //целое число для хранения состояния кнопки
/-------------------------------------------------------------------------

void setup() {
  pinMode(button,INPUT);                //кнопка установлена как вход
  pinMode(lowbeam,OUTPUT);              // реле настроены как выходы
  pinMode(highbeam,OUTPUT);
  pinMode(gate,OUTPUT);

  digitalWrite(lowbeam,LOW);            //начальное состояние выключено
  digitalWrite(highbeam,LOW);           //начальное состояние выключено
  digitalWrite(gate,LOW);               //начальное состояние выключено

}
/-------------------------------------------------------------------------
void loop() {

                                        //подпрограмма устранения дребезга для чтения кнопки
  buttonPoll = digitalRead(button);     //опрос состояния кнопки
  if(buttonPoll == 1){                  //проверяем, была ли нажата кнопка
    delay(50);                          // ждем 50 мс
    buttonPoll = digitalRead(button);   //кнопка опроса снова
    if(buttonPoll == 0){                //если это 0 считать 1 нажмите
      state = old +1;                   //увеличиваем состояние на 1
    }}
  else{                                 //если кнопка не нажата
  deley(100);                           // ждем 100 мс
  }
  switch (state) {                      // реагировать на нажатие кнопки & состояние
    case 1:                             //если состояние равно 1
      digitalWrite(lowbeam,HIGH);       //реле ближнего света включено
      digitalWrite(highbeam,LOW);       //реле дальнего света выключено
      digitalWrite(gate,LOW);
      old = state;                      //установить старое состояние как текущее
      break;
    case 2:
      digitalWrite(lowbeam,LOW);
      digitalWrite(highbeam,HIGH);
      digitalWrite(gate,LOW);
      old = state;
      break;
    case 3:
      digitalWrite(lowbeam,LOW);
      digitalWrite(highbeam,LOW);
      digitalWrite(gate,HIGH);
      old = state;
      break;
    default:                            //если состояние, если нет 1,2,3
      digitalWrite(lowbeam,LOW);        //все реле выключены
      digitalWrite(highbeam,LOW); 
      digitalWrite(gate,LOW);
      old = 0;                          //сбросить все выключено/состояние 0
      break;
  }   
}

, 👍2

Обсуждение

Обычно отладчик сообщает, в какой строке программы находится ошибка..., @MichaelT


1 ответ


2

Хорошо, вы только что допустили пару мелких опечаток.

Хорошо разбивать код для удобства чтения, но однострочные комментарии начинаются с двойной косой черты //, а не с одинарной.

Кроме того, вы неправильно написали слово "задержка" в цикле.


Это должно скомпилироваться без ошибок:

/* Multiple State Handling
* 05-22-2019
*/

#define button 3                        //Нажать кнопку на D3
#define lowbeam 5                       //Ближний свет на D5
#define highbeam 6                      //Дальний свет на D6
#define gate 7                          //Врата на D7

//------------------------------------------------ ------------------------

int state = 0;                          //целое число для хранения текущего состояния
int old = 0;                            //целое число для хранения последнего состояния
int buttonPoll = 0;                     //целое число для хранения состояния кнопки
//------------------------------------------------ -------------------------

void setup() {
  pinMode(button,INPUT);                //кнопка установлена как вход
  pinMode(lowbeam,OUTPUT);              // реле настроены как выходы
  pinMode(highbeam,OUTPUT);
  pinMode(gate,OUTPUT);

  digitalWrite(lowbeam,LOW);            //начальное состояние выключено
  digitalWrite(highbeam,LOW);           //начальное состояние выключено
  digitalWrite(gate,LOW);               //начальное состояние выключено

}
//------------------------------------------------ -------------------------
void loop() {

                                        //подпрограмма устранения дребезга для чтения кнопки
  buttonPoll = digitalRead(button);     //опрос состояния кнопки
  if(buttonPoll == 1){                  //проверяем, была ли нажата кнопка
    delay(50);                          // ждем 50 мс
    buttonPoll = digitalRead(button);   //кнопка опроса снова
    if(buttonPoll == 0){                //если это 0 считать 1 нажмите
      state = old +1;                   //увеличиваем состояние на 1
    }}
  else{                                 //если кнопка не нажата
  delay(100);                           // ждем 100 мс
  }
  switch (state) {                      // реагировать на нажатие кнопки & состояние
    case 1:                             //если состояние равно 1
      digitalWrite(lowbeam,HIGH);       //реле ближнего света включено
      digitalWrite(highbeam,LOW);       //реле дальнего света выключено
      digitalWrite(gate,LOW);
      old = state;                      //установить старое состояние как текущее
      break;
    case 2:
      digitalWrite(lowbeam,LOW);
      digitalWrite(highbeam,HIGH);
      digitalWrite(gate,LOW);
      old = state;
      break;
    case 3:
      digitalWrite(lowbeam,LOW);
      digitalWrite(highbeam,LOW);
      digitalWrite(gate,HIGH);
      old = state;
      break;
    default:                            //если состояние, если нет 1,2,3
      digitalWrite(lowbeam,LOW);        //все реле выключены
      digitalWrite(highbeam,LOW); 
      digitalWrite(gate,LOW);
      old = 0;                          //сбросить все выключено/состояние 0
      break;
  }   
}
,