Работа таймеров обратного отсчета

Таймер всегда вычитает и хранит число в себе. Цель — добраться до нуля.

int — шаг тика 1 равен 1с.
countDown — Стартовое значение
ticker — 0 генерировать событие только при достижении 0; 1 на каждом изменении
repeat — 0 отработать и стоп. 1 перезапуск по кругу
needSave — на будущее

Таймер всегда начинается с значения countDown и стремится к нулю. По пути к этому он может генерировать события каждый тик и обязательно еще одно событие итоговое при достижении нуля. Таким образом если ticker = 1, то можно щупать таймер при каждом его шорохе, но если ticker = 0, то можно отловить только одно условие: if timer==0 then… Шаг тика задается int. Как только достигли нуля, то можно автоматом вернуться снова к countDown, если стоит repeat = 1

Таймером можно управлять из сценария:

timer.stop() — поставить процесс на паузу, при этом не будет событий и не будет уменьшаться счетчик.
timer.continue() — продолжить выполнение с момента остановки.
timer.int(число) — можно изменить шаг тиков.
timer.reset() — вернуть таймер к началу.

Примеры сценариев:

Моргание светодиодом раз в 10 секунд, если конфигурация как на картинке выше
if led==0&timer1==5 then led=1;
if led==1&timer1==0 then led=0;
Тоже самое по другому, если нужна та же частота, надо countDown сделать 5.
if timer1==0 then led=1-led;

Таймер начинает работать сразу после создания.

* На данный момент информация проверяется.
(Если нужно запускать таймер по запросу или в сценарии по условию, например температуры включайте таймер:
if dst1 > 36 then timer1 = 30; #запускаем таймер на 30 сек
if timer1 == 0 then отключаем нагрузку или что то там как только таймер дошел до нуля.)

Оставьте комментарий

Поддержал проект — спас молодого самодельщика! А мы принимаем подарки...

X