Библиотека таймера TimerOne.h для контроллеров Arduino позволяет задать не только периодичность вызова функции, но и временный промежуток выполнения функции.
Для понимания привожу фрагмент скетча для Arduino с таймером TimerOne.h:
К сожалению, ничего похожего для ESP8266 не могу найти или не там ищу.
Помогите организовать аналогичную "многозадачность" для ESP8266, чтобы "горелку держать выключенной не менее заданного в TstatTimerMax времени".
Для понимания привожу фрагмент скетча для Arduino с таймером TimerOne.h:
Код:
#include <TimerOne.h> // прерывания по таймеру1
#define TstatTimerMax 120 //минимальная пауза между включениями горелки, сек
unsigned int TstatTimer = 20; //таймер паузы между включениями/выключениями, начальная установка 20 сек для устаканивания системы после сброса
void setup() {
Timer1.initialize(500000); // Timer0 interrupt - set a timer of length 500000 microseconds
Timer1.attachInterrupt( timerIsr ); // attach the service routine here
//...
}
void loop() {
//...
if ( digitalRead(Relay) == RelayOn ) // если горелка включена -
{
digitalWrite(Relay, !RelayOn); // выключить горелку
TstatTimer = TstatTimerMax; // горелку держать выключенной не менее заданного в TstatTimerMax времени
}
//...
}
Помогите организовать аналогичную "многозадачность" для ESP8266, чтобы "горелку держать выключенной не менее заданного в TstatTimerMax времени".