Panie kolego po prostu naucz się pisać kod przejrzyście nie tylko dla potrzeb forum i innych osób ale przede wszystkim dla siebie, co to znaczy? zobacz jak powinno się zrobić inicjalizację takiego timera w trybie CTC:
Zaloguj się, aby zobaczyć kod
jeśli tak będziesz pisał kod to sam chyba widzisz że 100x rzadziej pomyłkę zrobisz
Dodano po 4 [minuty]:
tymczasem pamiętaj że jeśli bit ma mieć wartość = 0 to NIGDY nie ustawia się zera tak
TCCR0 |= (
0<<CS02); !!!!
ustawianie bitu to:
zerowanie bitu to:
zmiana bitu na przeciwny to:
czyli gdybyś chciał wyzerować bit CS02 to zapisać by trzeba było tak:
TCCR0 &= ~(1<<CS02);
ale spójrz na opis "initial value" czyli co jest w rejestrze po resecie, są już zera. Więc przy pierwszej inicjalizacji po resecie nie trzeba ich ponownie zerować, tzn tych bitów które mają być zerami.