Jacek212 napisał: Czyli: jeżeli mam ustawioną reakcje na zbocze narastające, TIMER1 w trybie normal, i preskaler ustawiony na 1, to licznik TCNT1 cały czas się zwiększa, w momencie wystąpienia zbocza narastającego na ICP1 rartoś jaka była w liczniku jest przepisywana do ICR1 którą przypisuję do zmiennej. W momencie wystąpienia kolejnego zbocza narastającego wartość z TCNT1 znów jest przepisywana do ICR1.
Dotąd wszystko się zgadza.
Jacek212 napisał: I jeśli teraz od aktualnej wartości ICR1 odejmę wartość którą przypisałem do zmiennej otrzymam (znając taktowanie µC) czas pomiędzy zboczami.
Tak, pod warunkiem, że pomiędzy pierwszym, a drugim odczytaniem ICR1 licznik się nie przepełnił.
A to już jest złe:
Jacek212 napisał: A to że licznik TCNT1 się przepełnił nie ma żadnego znaczenia dla poprawności wyniku?
ale generalnie problem rozumiesz, bo zadajesz słuszne pytanie:
Jacek212 napisał: I co jeżeli przepełni się więcej niż jeden raz?
Przeanalizuj (policz) jaki powinien być wynik gdy:
- pierwszy odczyt ICR1 dał 65000,
- drugi odczut ICR1 dał 500,
- przepełnienie wystąpiło raz
i drugi przypadek:
- pierwszy odczyt ICR1 dał 1000,
- drugi odczyt ICR1 dał 1000,
- przepełnienie wystąpiło 10 razy.