Здравствуйте. Есть esp8266, к которой по i2c подключен модуль расширения выходов на микросхеме PCF8574t. На esp крутится портал. Там есть много кнопок. По нажатию на кнопку, должен загораться светодиод на 5 секунд, потом гаснуть. В функции "void action()" millis не работает... Выношу действие в отдельную функцию, тоже не работает... Я так понимаю, что таймер на millis всегда должен выполняться в loop?
Подскажите, как лучше это обыграть? Сейчас у меня в loop только тик интерфейса.
Подскажите, как лучше это обыграть? Сейчас у меня в loop только тик интерфейса.
C++:
void action() {
pc1status =! PCF2.read(0);
pc2status =! PCF2.read(1);
if (ui.update()) {
if (ui.update("led1")){
ui.answer(pc1status);
} else if (ui.update("led2")){
ui.answer(pc2status);
}
}
if (ui.click()) {
if (ui.click("pc1pwr")) {
PCF1.toggle(0);
} else if (ui.click("pc1pwr5")) {
// Тут должен зажигаться светодиод на 5 секунд
} else if (ui.click("pc2pwr")) {
PCF1.toggle(1);
}
}
}
C++:
void loop() {
ui.tick();
}