Święta prawda z tym jak najszybszym wykonywaniem się przerwań
ale....
.... po pierwsze gdybyś już aż tak bardzo potrzebował wyżyłować przerwanie tzn jego czas (chociaż w tym przypadku nie ma to już większego sensu o czym za chwilę) to skorzystałbyś z trybu CTC Timera1 a nie tak jak teraz z przerwania od przepełnienia przez co w przerwaniu MUSISZ wpisywać wartość TCNT1 ....
w razie czego to pamiętaj że tu tracisz już kilka cykli zegara
.... tym bardziej dla Timera1 gdzie trzeba liczbę 16-bitową wpisać
po drugie - oczywiście że taki warunek IF nie ma większego znaczenia - chodzi raczej o to żeby nie wpaść na pomysł np wyświetlania czegoś na LCD w przerwaniu albo stosowania jakichś pętli itp ....
po trzecie - nie jesteś pierwszym i na pewno nie ostatnim, który spróbował zrobić sobie SUPER dokładny zegarek - chociaż i tak kilka sekund na kilka godzin to niezły wynik
.... Ale to dlatego że korzystasz z kwarca a nie z wen. oscylatora
OK co byś nie robił - to i tak nigdy nie uzyskasz SUPER wyniku tą metodą i nawet nie idź w tym kierunku
jakbyś nie wiedział to kwarce też mają swoją tolerancję no i na dodatek wraz z upływem czasu potrafi się ona zmieniać (pogarszać) .....
Jak chcesz zrobić dokładniejszy zegarek to zrób go na kwarcu zegarkowym 32,768kHz podpiętym pod wejścia asynchroniczne Timera2 - ale to też nie da ci w żadnym wypadku atomowego wzorca czasu
--------
odnośnie czasu wykonywania twojego przerwania - to nie ma ONO NAJMNIEJSZEGO wpływu w takiej postaci jak jest na to że zegarek się późni bądź śpieszy bo i tak czas pomiędzy przerwaniami jest ogromny - masz bardzo krótką obsługę przerwania
..... a ta niedokładność która ci wychodzi spowodowana jest wprost niedokładnością kwarca
próba robienia super dokładnych zegarków na prockach to jak poszukiwanie świętego grala - nie uda się. Nawet specjalizowane układy RTC mają pewne tolerancje niedokładności
..... aha i jeszcze weź pod uwagę że taki zegarek jaki próbujesz robić tzn może to odmierzanie czasu jest zależne od temperatury otoczenia
zamiast więc - siedzieć godzinami i obserwować czy procek dokładnie odmierza sekundy - weź lepiej zrób coś innego
albo jakiś zegarek na kwarcu zegarkowym - one dają szansę uzyskać nieco większą dokładność i co więcej można sobie go nawet programowo korygować nieco..... Zresztą ten też
.... skoro co 5 godzin późni ci się np o 3 sekundy to co 5 godzin odejmuj 3 sekundy i już będzie dużo dużo lepiej
_________________
zapraszam na blog:
http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj
Kurs EAGLE ] [ mój kanał YT TV
www.youtube.com/mirekk36 ]