Naręczny zegarek binarny





Cała elektronika zegarka opiera się na procesorze ATmega8 pracującym z oscylatorem wewnętrznym 8MHz i zegarze czasu rzeczywistego DS2415 pracującym z kwarcem 32,768kHz. Normalnie procesor jest w trybie power down, pracuje tylko RTC pobierając niecałe 3uA prądu. Odczyt czasu wywoływany jest przez wciśnięcie na chwilę przycisku S4, procesor budzony jest za pomocą wywołania zewnętrznego przerwania INT0. Poprzez magistrale 1wire odczytywany jest 32 bitowy rejestr RTC, następuje obliczanie na podstawie jego zawartości liczby sekund minut , godzin, oraz daty i wyświetlanie czasu które trwa 5 sekund (wyświetlanie czasu można wydłużyć trzymając wciśnięty przycisk budzenia zegarka), poczym procesor ponownie przechodzi w stan uśpienia. Ustawianie zegarka odbywa się za pomocą dwóch przycisków. Wciśnięcie jednego z nich zwiększa wskazanie minut, natomiast drugiego - godzin. W celu ustawienia aktualnej daty wyżej opisane przyciski wciskamy trzymając cały czas wciśnięty przycisk odczytu daty. Zegarek pracuje w trybie 12 godzinnym, należy zwrócić uwagę, że nie mamy nigdzie informacji czy dana godzina jest przed czy po południu (uznałem to za mało potrzebne), lecz w przypadku daty jest to istotne (zegarek musi wiedzieć, żeby zwiększyć datę o 12 w nocy a nie w południe...) dlatego też w trybie ustawiania godziny, jeśli ustawiana godzina jest po południu świeci się cały czas pierwsza dioda linijki sekund. Do zasilania zegarka użyłem bateryjki 3V CR2032, ma stosunkowo dużą pojemność (200mAh) i wystarcza na kilka miesięcy użytkowania zegarka. Dokumentacja zegarka dostępna jest tutaj.



Galeria zdjęć: