Доброго времени суток.
Очередные часики на Мега32 из модулей.
По наделал для своих поделок разных модули, получилось удобно.
Можно экспериментировать с разными микроконтроллерами.
"Пробой пера" банально написал программу "часов" под данный конструктив.
Получились часики с календарём, 8 будильников (только на день), термометр.
В вёл коррекцию секунд (ежедневно если необходимо), максимум +-30сек.
Да, часы программные.
Часы могут сигнализировать (писк) каждый час, 30мин, 15мин, 1 мин.
Нужно было мне для моих нужд такие интервалы.
Под управление и коррекцию задействованы все 6 кнопок дисплейного модуля.
Часики на AVR из модулей
Moderator: Shaos
-
- Fanat
- Posts: 85
- Joined: 20 Sep 2015 02:50
Часики на AVR из модулей
You do not have the required permissions to view the files attached to this post.
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
Re: Часики на AVR из модулей
Дисплей классный. А большой шрифт слишком квадратный, где часы собственно. Можно было бы для больших цифр раскошелится на бОльшую размерность, типа 16x32 или 32x64. Имхо.
А в целом, хорошо. Просто и со вкусом.
А в целом, хорошо. Просто и со вкусом.
-
- Doomed
- Posts: 449
- Joined: 08 Apr 2013 04:04
- Location: 213.247.249.139
Re: Часики на AVR из модулей
Сам счёт времени идёт от кварца 32768 гц или от быстрого? Как делается коррекция?
Есть ли батарейка (на фотках не вижу) чтоб переживало отключения?
Есть ли батарейка (на фотках не вижу) чтоб переживало отключения?
привет засранцу лавру :)
-
- Fanat
- Posts: 85
- Joined: 20 Sep 2015 02:50
Re: Часики на AVR из модулей
Так как модули универсальные, на плате микроконтроллера стоят кварц 16мГц и 32768Гц, а на модуле с дисплее стоит микруха часов PCF8563 с кварцем 32768, но не используется в данной версии.
Внутренние часы за тактованы от часового кварца Меги32.
Планировал питать от батарей но у меня Мега32 без буквы А, да и подсветка дисплея тоже не мало потребляет.
На часовую микросхему я не развёл под батарейку в данном модуле дисплея. Забыл. А новую плату развести лень и так работает.
Коррекция если требуется происходит каждый день в 0:30.
Внутренние часы за тактованы от часового кварца Меги32.
Планировал питать от батарей но у меня Мега32 без буквы А, да и подсветка дисплея тоже не мало потребляет.
На часовую микросхему я не развёл под батарейку в данном модуле дисплея. Забыл. А новую плату развести лень и так работает.
Коррекция если требуется происходит каждый день в 0:30.
-
- Doomed
- Posts: 449
- Joined: 08 Apr 2013 04:04
- Location: 213.247.249.139
Re: Часики на AVR из модулей
Ясно.kuber wrote:Так как модули универсальные, на плате микроконтроллера стоят кварц 16мГц и 32768Гц, а на модуле с дисплее стоит микруха часов PCF8563 с кварцем 32768, но не используется в данной версии.
Внутренние часы за тактованы от часового кварца Меги32.
Планировал питать от батарей но у меня Мега32 без буквы А, да и подсветка дисплея тоже не мало потребляет.
На часовую микросхему я не развёл под батарейку в данном модуле дисплея. Забыл. А новую плату развести лень и так работает.
Коррекция если требуется происходит каждый день в 0:30.
Я как-то придумал следующую вещь, которая позволяет от любого кварца точно считать время да ещё и с непрерывной коррекцией.
Например кварц 8 мгц, от него работает 16-битный таймер и даёт прерывание каждые 65536 тактов.
В обработчике, используя 24-битную (или 32-битную) арифметику прибавляем к сумматору число 65536. Как только сумматор станет больше 8000000 (частота кварца), вычитаем из него это (8000000), остаток оставляем до следующего суммирования и дёргаем флаг что надо прибавить 1 к секундам.
Коррекция состоит в том, что вместо 8000000 используем например величину 8000001 или 7999999 или c большим отличием.
Недостаток -- джиттер, равный времени между срабатываниями таймера, преимущество -- фактическая независимость от конкретного значения кварца.
Для 32768 Гц можно использовать дробные значения частоты (нарпимер 32768.0625, в хексе это 0x800010), расчёты ведутся в "fixed point"
привет засранцу лавру :)