Циклический счетчик времени.
- Войдите на сайт для отправки комментариев
Чт, 09/06/2016 - 15:40
Добрый день, только начал изучать Arudino. есть задача выполнять действия, а именно:
1) подать сигнал на выход 1
2) пауза 20 мин
3)выключить сигнал на выходе 1
4) включить сигнал на порт 2
И т.д. всего 3 исполнительных устройства.
потом надо обеспечить паузу в 23 часа.
Возник вопрос: кие операторы использовать для работы со временем?
P.S.Есть идея после включения и выключения портов обнулять счетчик времени чтобы не переполнять память и делать паузу 23 часа.
Да, но смущает описание оператора:
Возвращает количество миллисекунд с момента начала выполнения текущей программы на плате Arduino. Это количество сбрасывается на ноль, в следствие переполнения значения, приблизительно через 50 дней.
Дык вам же каждые 23 часа надо. Чего мешает сбрасывать переменную, хранящую значение вызова millis, в 0? И потом - почитайте про переполнение беззнаковых чисел, и про беззнаковую арифметику вообще. И сразу поймёте, что страшилки - нет, если правильно писать код:
И пофиг на переполнение.
Спасибо.
Raftor, перечитайте свой вопрос. Вы не находите его странным?
Хорошо, давайте объясню понятнее. Код, который я привел (чуть ниже) работает и абсолютно правильно делает то, что Вы просили! Вам это надо? А если нет, по подумайте как нормально сформулировать вопрос.
Большое спасибо, за такой подробный ответ.
Действительно вопрос получился очень сумбурный, т.к. я первый раз столкнулся с написанием кода для Arudino. Вае решение с таким форматом времени меня устроит, т.к. не каких других действий контроллер делать не должен.
Ну, если устроит, то значит вопрос был задан правильно :) Удачи!