Циклический таймер и часы реального времени
- Войдите на сайт для отправки комментариев
Чт, 17/07/2014 - 07:24
Здравствуйте, Ардуинеры
При применений таймера с выдержкой на 0,5-2 часа, объязателен ли RTC shield, у меня лежит UNO, можно ли справится без RTC шиелда?
Заранее блогадарен всем.
Конечно же нет. Ведь милис придумали для красоты
конечно же нет? не справится UNO или не объязателен RTC shield.
Зависит от того какая точность вам нужна, если не страшно ошибиться на несколько десятков секунд на ваших 0.5-2 часах, то RTC явно лишний
а есть функция работы с минутами, например delay и millis только не мсек а мин, а то delay(3600000) как то не то.
Я видел библиотеку RTC где в качестве источника времени можно исользовать millis:
этот код уже есть в библиотеке по ссылке.
Время естественно нужно настраивать при каждом сбросе МК, можно добавить в setup
rtc.adjust(DateTime(__DATE__, __TIME__));
тогда оно будет установлено временем последней прошивки.
Код выполняет преобразование millis в unixtime. Выполняется правда долго.
а есть функция работы с минутами, например delay и millis только не мсек а мин, а то delay(3600000) как то не то.
delay это "не правильная" функция. Ей проще пользоваться с точки зрения логики, но она по сути заставляет МК работать в холостую заданное время
Лучше раставлять временные точки и контролировать их исполнение, при этом можно заниматься другой полезной работой. Посмотрите вот эти стандартные библиотеки, они упрощают использовать подход с временными точками:
http://playground.arduino.cc/Main/MsTimer2
http://www.arduino.cc/playground/Code/Metro
MsTimer2 вызовет функция по истечении заданного времени в милисекундах. Это по-моему наиболее правильный способ работы с временем. А то, что время надо задавать как 3600000 так что такого? Можете сделать свою функцию или макрос, например:
У Leshak на блогспоте ( жалко что он его забросил) http://alxarduino.blogspot.com/2013/09/ComfortablyBlinkWithoutDelay.html
есть https://bitbucket.org/alxarduino/leshakutils/downloads
Я не совсем понял, в MsTimer2 задается период или длительность выполнения?