Принципиальная схема контроллера
- DDI - ATmega8
- DD2 - ЖК-индикатор MT-10S
- HL1, HL2 - красный и зеленый светодиоды
Выводы "Управление нагрузкой 1" и "Управление нагрузкой 2" работают в противофазе. На них можно повесить оптосимистор или, например, транзистор - кто что любит. Нагрузочная способность одного вывода порта D ATmega8, как известно, составляет до 20 mA при 5В питании.
На схеме не указаны конденсаторы от кварца на землю. Для получения точности хода на длительных выдержках их, скорее всего, надо подбирать.
В этом таймере код для пробы был написан на C++ c использованием операционной системы реального времени scmRTOS. Конечно, для такой простой конструкции - это "из пушки по воробьям", но было полезно для практического знакомства с этой OC. Могу сказать, что операционка хорошая, но порог вхождения высокий, а документация не очень последовательная, что-ли. Пришлось несколько раз перечитывать от начала до конца, чтоб в голове уложилось. И в тот момент версия документации отставала от версии ПО. Лишний раз убеждаюсь, что написание хорошей документации - отдельное искусство, не менее важное, чем кинематограф и программирование.
Всё это хозяйство обкатывалось и отлаживалось полностью в Proteus-е в виду отсутствия живого "железа". Уже полностью готовая программа была прошита в контроллер "удаленным заказчиком" самостоятельно и, как ни странно, заработала. От такой неожиданности пришлось срочно всё отключать и перепроверять в поисках ошибки :)
Прошивка
Версия 1.02 от 08.10.2009: (доступно зарегистрированным пользователям)
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
ОБСУЖДЕНИЯ
А как выставлены фьюзы?
Насколько я помню, фьюзы генератора такие:
CKSEL3…0 = 1001 – часовой кварц на 32768Hz
CKOPT = 0 - подключение внутренних емкостей 36pF к резонатору
Остальные - не трогались, заводские установки подходят:
SUT0 = 0
SUT1 = 1
BODEN = 1
BODELEVEL = 1