Kolejny problem z moim zegarkiem
Układ pracuje na wewnętrznym oscylatorze 1MHz, a pod piny TOSC1 i TOSC2 podpięty kwarc zegarkowy 32.768kHz. Do jednego z nóżek kwarca podpięty kondensator 100nF. (jak go nie dam ma problemy ze startem, muszę go poruszać)
Przerwanie wpisujące do zmiennej tick jedynkę jest uruchamiane przez Timer2 pracujący w trybie asynchronicznym, wtedy wykonuje się pętla główna która aktualizuje wyświetlacz, sprawdza guziki, itd. po czym wchodzi w stan PowerSave do czasu kolejnego wykonania przerwania z Timer2. Po około dwóch godzinach pracy odchyłka od prawidłowego czasu wynosi aż 10 sekund w przód.(zbudowany zegar śpieszy)
Fragmenty kodu:
Co by zastosować by nie było tej niedokładności?
Z góry dzięki za pomoc.
Układ pracuje na wewnętrznym oscylatorze 1MHz, a pod piny TOSC1 i TOSC2 podpięty kwarc zegarkowy 32.768kHz. Do jednego z nóżek kwarca podpięty kondensator 100nF. (jak go nie dam ma problemy ze startem, muszę go poruszać)
Przerwanie wpisujące do zmiennej tick jedynkę jest uruchamiane przez Timer2 pracujący w trybie asynchronicznym, wtedy wykonuje się pętla główna która aktualizuje wyświetlacz, sprawdza guziki, itd. po czym wchodzi w stan PowerSave do czasu kolejnego wykonania przerwania z Timer2. Po około dwóch godzinach pracy odchyłka od prawidłowego czasu wynosi aż 10 sekund w przód.(zbudowany zegar śpieszy)
Fragmenty kodu:
Kod: C / C++
Z góry dzięki za pomoc.