saturator napisał: .Czy dobrym rozwiązaniem było by inkrementowac go tak jak robie z timerem1 ?
Nie.
Timer1 jest timerem 16 bitowym przez co daje możliwośc zliczenia dłuższych czasów (np. 1 sec) bez zliczania jego przepełnień.
Timer2, podobnie jak Timer0 jest tylko 8-bit zatem przy taktowaniu 16 MHz oraz zastopsowaniu nawet maxymalnego prescalera = 1024 pozwoli na odmierzenie odcinka czasu niewiele ponad 16 ms.
Cytat:
Przy 16Mhz i maksymalnych 261 120 taktach to musiałbym zliczyć do 61 razy aby odmierzyć sekundę czy dobrze rozumiem ? Nie wpłynie to na dokładność pomiaru za bardzo ?
Nie bardzo rozumiem twoje liczby........
Aby nim (timer2) odmierzyc 1 sec. jest na to bardzo wiele możliwości:
1. Pod piny processora: PC7 (TOSC2) i PC6 (TOSC1) podpinasz kwarc zegarkowy (32768); Timer2 konfigurujesz jako timer do pracy asynchronicznej z prescalerem =128 i uzyskasz przepełnienia dokładine co 1 sec. Uzyskasz w ten sposób RTC referowany w d/sht. jako: "Real Time Counter".
Edit: (O czym wcześniej napisał M.S._)
2.Taktujesz Timer2 synchronicznie w trybie CTC; (I/O clk = 16MHz),
dobierasz prescaler i OCR2 tak aby odmierzony czas jednego cyklu był podzielnikiem 1 sekundy. np.:1 ms, 2 ms, 4 ms, 8 ms. i odpowiednio wyliczysz do tego ilośc wymaganych przepełnień zliczanych do przyjętej zmiennej.
Przykład1:
Interwał = 1 ms
Prescaler=128
OCR2= 125
X_ovf = 1000 ' wymagana ilośc przepełnień timera2
------------------
Przykład2:
Interwał = 8 ms
Prescaler=1024
OCR2= 125
X_ovf = 125 ' wymagana ilośc przepełnień T2
-----------------
e.t.c.
e marcus