Witam, mam pewien problem, którego nie potrafię sobie sam wyjaśnić. Otóż piszę sobie programowy PWM, oparty o np Timer2 Atmedze8:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Obsługa przerwania:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Taktowanie 11059200 Hz ( 11059200/1024/108/100 = 100 Hz)
Ten kod oczywiście działa, lecz gdy zastosowałem go np do sterownika taśm rgb, pwm podawany na tranzystory sterujące ledami to widać stałe pulsacje kolorów średnio co ok 2s, jest to uciążliwe i po dłuższym czasie robi się nieprzyjemne. Zwiększenie częstotliwości PWM do nawet 100kHz nie niweluje tego efektu. Nie mam oscyloskopu aby się wpiąć i na żywo zobaczyć generowany przebieg prostokątny. Przy pwm = 0 identycznie zachowuje się sterowany mosfetem silnik DC, tzn on nie pracuje, ale słychać te "przeskoki".
Ma ktoś jakiś pomysł co robię nie tak albo czego nie uwzględniłem?
Pozdrawiam