PWM działa bo ustawiłeś tryb Fast PWM i... preskaler. A gdzie ten preskaler? Ano w tej linijce
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Zamiast takiego zapisu
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
otrzymałeś coś takiego
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
W rezultacie non inverting mode zamiast oczekiwanego inverting mode i ustawiłeś preskaler na 1. Dlatego PWM działa.
Zapytasz skąd wiem, że kompilator tak a nie inaczej ustawił ten rejestr? Po prostu zajrzałem sobie do pliku *.lss. A tam ładnie widać coś takiego
język asm
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
W linii 7 widać jak ten błąd, który zrobiłeś wpłynął na ustawienie rejestru TCCR0.