Я не пойму 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 Guest

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

    sasha294 Нерд

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

    DIYMan Guest

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

    sasha294 Нерд

    ну такое
     
  7. sasha294

    sasha294 Нерд

  8. DIYMan

    DIYMan Guest

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

    sasha294 Нерд

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

    sasha294 Нерд

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

    DIYMan Guest

    Полный текст скетча, плз.
     
  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 Guest

    Сами-то видите ошибку, не? У вас 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 Guest