Konfigurujesz Timer0 i obsługę przerwania masz dla Timera1.
Poza tym jeśli korzystasz z trybu CTC i ustawisz licznik TCNT0 na wartość 131 a OCR0 na 255 to timer zliczy ci 125 impulsów tylko do wystąpienia pierwszego przerwania. Bo po zrównaniu się TCNT0 z OCR0 (i wystąpieniu przerwania) licznik będzie liczył od 0 do 255 i w rezultacie przerwanie będzie występować po zliczeniu 256 impulsów. Trochę się chyba koledze pomyliło z trybem Normal i przerwaniami od przepełnienia.
W trybie CTC ustawia się wartość impulsów, które timer ma zliczyć w rejestrze OCR. Wtedy licznik TCNT zaczyna liczyć od zera i jeśli jego wartość zrówna się z OCR to zostanie wyzerowany i zacznie liczyć znów od zera. I przy okazji zostanie wywołane przerwanie Compare Match.
Konfiguracja przerwania powinna wyglądać tak
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.