Увы, длинные новогодние каникулы кончились и уже не получается уделять хобби так много времени. Однако, прошедшие выходные были на удивление плодотворными.

По некоторому размышлению я снял со схемы кварцевый резонатор. Измерением точного времени занимается специальная микросхема, поэтому точности встроенного генератора на 8МГц вполне хватает.

Самое главное — на этой неделе почта привезла USB-программатор (на фото справа). Вместе с доставкой из Китая получилось дешевле, чем аналогичный набор деталей здесь.

Вещь, конечно, удобнейшая. До этого я пользовался так называемым «программатором Громова» и программой UniProf. Процесс прошивки выглядел примерно следующим образом:

  1.  отключить питание
  2.  подключить программатор
  3.  включить питание
  4.  запустить UniProf
  5.  очистить память
  6.  открыть файл с прошивкой
  7.  

  8.  записать
  9.  отключить питание
  10.  отключить программатор

И так — каждая прошивка. Теперь же ничего отключать-подключать не нужно, вся прошивка делается по нажатию одной кнопки. Скомпилировал-прошил. После чего программатор посылает сигнал сброса и устройство начинает работать. Скорость отладки выросла неимоверно - я сразу же разобрался, почему не приходили данные с DS1307. Оказалось, была ошибка в реализации протокола I2C. Поправил — и всё сразу заработало.

В результате где-то за три часа я полностью закончил микропрограмму. Теперь девайс показывает текущее время, причём не теряет его даже при отключении питания. Настройки сохраняются в постоянной памяти микроконтроллера и не теряются при выключении.

В режиме настройки можно задать  "ночной" режим, когда индикаторы снижают яркость почти до минимума, сейчас это с 23:00 до 8:00.

Минимальная яркость

Микроконтроллер, конечно же, неимоверная штука. Простым программированием на C можно добавлять практически любые функции, которые потребуются. Не хватит возможностей «железа» — можно добавить дополнительные датчики. Расширяемость просто чумовая.

Теперь на очереди корпус.

Часы, продолжение
Метки: