Код (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; } } }
Это считает по 1 секунде и выполняет определенный код в Set. И сколько но если совпадают цифры оно выполняет но там другая часть кода.
Вы чего хотите-то? На скрине, приведённом в стартовом посте, видно, что ругается на дичь "if else". Вы поправили не скетч, а пост. Как минимум - поправьте указанные ошибки, и выложите результат компиляции. И если будет ругаться - смотрите, нет ли у вас ещё одной переменной с именем f, которая имеет тип int.
Код (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); }
Сами-то видите ошибку, не? У вас 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); }
Если вы про этот пример: https://github.com/nw-wind/SmartDelay/blob/master/examples/asyncRead/asyncRead.ino - то там не как у вас, а всё правильно. Не пеняйте на зеркало