Счетчики: проблема со сложением цифр

Тема в разделе "Arduino & Shields", создана пользователем cg_spooler, 4 апр 2016.

  1. cg_spooler

    cg_spooler Нуб

    Плата MEGA 2560
    Сразу после 1го прохода счетчик прыгает не на 1, а 15.
    Версия разработки: 1.6.8
    Код (C++):

    int OffCounter; // счетчик выключения
    const int MaxOffCounter=15;//сколько секунд ждать до выключения реле
    void setup() {
       Serial.begin(115200);//вывод в компорт
    OffCounter=0;
    }
    void loop() {
       Serial.println("off counter:"+String(OffCounter)+" remain:"+String(MaxOffCounter-OffCounter));
      OffCounter=OffCounter+1;
      if (OffCounter=MaxOffCounter)
      {
    //  digitalWrite(40, HIGH);  // реле  включено
      }

    delay(1000);
    }
     
    Скрин из терминала
    off counter:0 remain:15
    off counter:15 remain:0
    off counter:15 remain:0
     
    Последнее редактирование: 4 апр 2016
  2. cg_spooler

    cg_spooler Нуб

    Разобрался сам, давно писал на С++...
    if(OffCounter=MaxOffCounter)
    на
    if(OffCounter==MaxOffCounter)
     
  3. AlexU

    AlexU Гуру

    Код (C++):
    if (OffCounter=MaxOffCounter)
    сначала выполняется присвоение 'OffCounter=MaxOffCounter', а потом уже проверка условия, а т.к. OffCounter становиться равным 15. Условие всегда будет истинным.