Таймер можно выставить от 1 секунды до 999 часов 59 минут 59 секунд. После запуска таймер изменяет состояние нагрузки на противоположное и начинает считать. По истечении заданного периода таймер и нагрузка приводятся в исходное состояние, готовое к повторному запуску. Во время отсчета время можно подкорректировать не меняя состояния нагрузки.

Принципиальная схема контроллера

  • DDI - ATmega8
  • DD2 - ЖК-индикатор MT-10S
  • HL1, HL2 - красный и зеленый светодиоды

Выводы "Управление нагрузкой 1" и "Управление нагрузкой 2" работают в противофазе. На них можно повесить оптосимистор или, например, транзистор - кто что любит. Нагрузочная способность одного вывода порта D ATmega8, как известно, составляет до 20 mA при 5В питании.

На схеме не указаны конденсаторы от кварца на землю. Для получения точности хода на длительных выдержках их, скорее всего, надо подбирать.

Опытный образец
Как обычно - всё просто

В этом таймере код для пробы был написан на C++ c использованием операционной системы реального времени scmRTOS. Конечно, для такой простой конструкции - это "из пушки по воробьям", но было полезно для практического знакомства с этой OC. Могу сказать, что операционка хорошая, но порог вхождения высокий, а документация не очень последовательная, что-ли. Пришлось несколько раз перечитывать от начала до конца, чтоб в голове уложилось. И в тот момент версия документации отставала от версии ПО. Лишний раз убеждаюсь, что написание хорошей документации - отдельное искусство, не менее важное, чем кинематограф и программирование.

Всё это хозяйство обкатывалось и отлаживалось полностью в Proteus-е в виду отсутствия живого "железа". Уже полностью готовая программа была прошита в контроллер "удаленным заказчиком" самостоятельно и, как ни странно, заработала. От такой неожиданности пришлось срочно всё отключать и перепроверять в поисках ошибки :)

Прошивка

Версия 1.02 от 08.10.2009: (доступно зарегистрированным пользователям)

ОБСУЖДЕНИЯ

Аватар пользователя fox-explorer

А как выставлены фьюзы?

Аватар пользователя Leog - Linker.Ru

Насколько я помню, фьюзы генератора такие:

CKSEL3…0 = 1001 – часовой кварц на 32768Hz

CKOPT = 0 - подключение внутренних емкостей 36pF к резонатору

Остальные - не трогались, заводские установки подходят:

SUT0 = 0
SUT1 = 1

BODEN = 1

BODELEVEL = 1