Узнал, что существуют прерывания, поэтому отказываюсь от Delay(). Delay() - это зло.Поизучал я прерывания по таймеру, наткнулся на интересный блог Лешака, он применяет конструкцию типа:
[code]// "заготовка/шаблон функции" которая периодически выполняет КАКОЕ-ТО-ДЕЙСТВИЕ
void somePeriodical(unsigned long interval){
static unsigned long prevTime=0;
if(millis()-prevTime>interval){
prevTime=millis();
КАКОЕ-ТО-ДЕЙСТВИЕ;
}
}
[/code]
Разобью свой старый скетч вентиляции с delay на несколько подфункций somePeriodical:
[code]// "заготовка/шаблон функции" которая периодически выполняет КАКОЕ-ТО-ДЕЙСТВИЕ
void somePeriodical(unsigned long interval){
static unsigned long prevTime=0;
if(millis()-prevTime>interval){
prevTime=millis();
КАКОЕ-ТО-ДЕЙСТВИЕ;
}
}
[/code]
Разобью свой старый скетч вентиляции с delay на несколько подфункций somePeriodical:
- опрос темпер датчиков
- опрос датчиков влажности и перепада
- управление вентилятором
- включение тена с пид регулятором
- вывод на lsd экран
- передача по сети (планируется)
Комментариев нет:
Отправить комментарий