09.11.2017, 15:47 | #1 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 191
Благодарил(а): 15 раз(а)
Поблагодарили:
666 раз(а) в 608 сообщениях
|
Циклический таймер (Х сек. работаем, Y сек. не работаем)
Вопрос:
Готовый макрос циклического таймера существует? Ответ: "Циклические таймеры" - это не что иное, как автоматы состояний с времязадающей цепью. Проще всего их делать копипастом, это гораздо быстрее, чем искать нужный именно вас макрос. Покажу на примере простейшего алгоритма: 300 секунд "работаем", 1 час "отдыхаем". Для начала определимся со счётчиками. Интервал 300 сек легко посчитает обычный 16-тиразрядный счётчик, а вот час уже слишком велик для него, поэтому используем 32-хразрядный счётчик из библиотеки. Для начала ставим два счётчика рядом. Ведь по условию, нужно отсчитать два интервала, 300 сек и 1 час. Два времени, два счётчика. Затем связываем их в единый цикл. Сначала считает один счётчик, по окончанию счёта он запускает второй счётчик. А второй счётчик, в свою очередь, по окончанию своего счёта сбрасывает всю систему в исходное состояние. В принципе, всё готово. Однако в жизни эту систему нужно уметь останавливать, поэтому оформляем сигнал разрешения работы, который банально снимает сигналы сброса с обоих счётчиков. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |