Такой вариант не годится (это просто задержка, которая тормозит весь цикл). Надо вводить переменную еще одну переменную. Вообще я делал без таймеров. Таймеры нужны для большой точности. В прошивке же плюс минус 2 - 3 минуты для сна особой роли не играют. (Хотя есть возможность переписать код на таймеры).
В самом начале кода объявляешь еще одну переменную, например
unsigned long TURBO = 0; // переменная отчет времени для режима TURBO
Далее в самом начале основного цикла :
void loop()
if (TURBO == 400 && M4S == true) // если установлен отчет времени для режима турбо, добавить 50 градусов к температуре уставки
set = set + 50;
if (TURBO == 5) // если отсчет времени режима турбо почти закончен, вернуть уставку температуры к исходному значению.
{
set = set - 50;
M4S = false;
}
if (TURBO > 0) // если отсчет режима турбо не закончен (не равно 0), то уменьшить переменную на 1
TURBO = TURBO - 1;
Далее правишь код обработки кнопки:
switch( button8.Loop() ) // обработка кнопки M4
{
case SB_CLICK: // нажатие кнопки M4
BUZZER (); // включаю BUZZER
//set_mem = set; //не используется
TURBO = 400; // установить переменную в значение 400 (400- это отсчет времени, надо пробовать разное значение, пока не получится столько секунд сколько надо, так как 400 - это не 400 секунд)
if (M4S == false) M4S = true;
M1S = false;
M2S = false;
M3S = false;
SON = 0; // сброс таймера сна
break;
}
Вот примерно так.
Последний раз редактировалось
Proton78 Вт янв 21, 2020 16:48:53, всего редактировалось 2 раз(а).