Я не пойму SmartDelay

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем sasha294, 31 дек 2017.

  1. sasha294

    sasha294 Нерд

    [​IMG]
    Код (C++):
    #include <SmartDelay.h>
    SmartDelay f(1000000UL);
    void loop(){
      if (f.Now()) {
        x++;
        }
      if (x <= firstPeriod - 1){
        timeSet();
        }else if (x <= secondPeriod - 1) {
          tempSet();
        }else if (x <= thirdPeriod ){
          humiSet();
          if (x == thirdPeriod + 1 ){
          x = 0;
        }
        }
        }
     
    Последнее редактирование: 31 дек 2017
  2. sasha294

    sasha294 Нерд

    Это считает по 1 секунде и выполняет определенный код в Set. И сколько но если совпадают цифры оно выполняет но там другая часть кода.
     
  3. DIYMan

    DIYMan Гуру

    Что за дичь "if else"? Нет такой конструкции в С++. Есть "else if".
     
    BAR__MEN нравится это.
  4. sasha294

    sasha294 Нерд

    Обычное печатание ночью
     
  5. DIYMan

    DIYMan Гуру

    Прекратите писать ночью, писать надо перед сном. На ночь вообще много воды не рекомендуется пить :D:D:D
     
  6. sasha294

    sasha294 Нерд

    ну такое
     
  7. sasha294

    sasha294 Нерд

  8. DIYMan

    DIYMan Гуру

    Вы чего хотите-то? На скрине, приведённом в стартовом посте, видно, что ругается на дичь "if else". Вы поправили не скетч, а пост. Как минимум - поправьте указанные ошибки, и выложите результат компиляции. И если будет ругаться - смотрите, нет ли у вас ещё одной переменной с именем f, которая имеет тип int.
     
  9. sasha294

    sasha294 Нерд

    Оно ругается на
    if (f.Now()) {
    }
     
  10. sasha294

    sasha294 Нерд

    Того участка кода нет, я оставил только этот
     
  11. DIYMan

    DIYMan Гуру

    Полный текст скетча, плз.
     
  12. sasha294

    sasha294 Нерд

    Код (C++):
    #include <SmartDelay.h>
    void setup() {
      // put your setup code here, to run once:
      Serial.begin(9600);
      SmartDelay f(1000000UL);
      int x = 0;

    }

    void loop() {
      // put your main code here, to run repeatedly:
      if (f.Now()) {
        x++;
        }
      Serial.print(x);

    }
     
    Последнее редактирование: 31 дек 2017
  13. DIYMan

    DIYMan Гуру

    Сами-то видите ошибку, не? У вас f объявлено в функции setup, и извне её не видно, т.е. в loop её НЕ СУЩЕСТВУЕТ. Надо так:
    Код (C++):
    #include <SmartDelay.h>
      SmartDelay f(1000000UL);

    void setup() {
      // put your setup code here, to run once:
      Serial.begin(9600);

    }

    void loop() {
      // put your main code here, to run repeatedly:
      if (f.Now()) {
        x++;
        }
      Serial.print(x);

    }
     
  14. sasha294

    sasha294 Нерд

    ... А в примере было как у меня
     
  15. sasha294

    sasha294 Нерд

    Спасибо
     
  16. DIYMan

    DIYMan Гуру