Dziękuję za odpowiedź. Przeczytałem ponownie rozdział i nasuwają mi się kolejne pytania.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Przeczytałem ponownie rozdział 4.7 Sterowanie PWM
Timer0 -> tryb FastPWM
Timer2 -> tryb Normal lub CTC -> ustawiamy częstotliwość wystąpienia przerwania
Timer2 , wybrałem tryb Normal ,liczy od 0 do 255, przepełnienie zawsze jest po 255 i przejście do procedury przerwania.
TCNT2 = 56; -> licznik Timer2’a liczy od 56 do 255, zlicza 200 impulsów.
Częstotliwość dla wystąpienia przerwania wynosi 8MHz / 200 = 40kHz
Tryb FastPWM, założono 3 kanały.
A. Ile można maksymalnie kanałów założyć ?
B. Czy ta informacja jest zapisana W nocie pdf dla procesora?
Opisuję działanie programu wg mnie:
Uruchamiam program procesor o FCPU = 8MHz zaczyna wysyłać impulsy. Licznik_FCPU będzie hipotetycznie zliczał impulsy z procesora.
Timer2 jest 8bitowy (0-255).
FCPU wysłał 2*200 = 400 impulsów, Licznik_FCPU = 510.
Licznik_Timer2 zliczył już raz od 56 do 255 i było 1 przerwanie. Teraz Licznik_Timer2 = 255.
Teraz następuje przerwanie od Timer2 w trybie Normal.
Pytanie:
Domyślam się że w czasie trwania przerwania Licznik_FCPU nadal zlicza ? Licznik_FCPU pomiędzy przerwaniami wysyła 200 impulsów.
C. Czyli w czasie działania przerwania Licznik_FCPU nie może wykonać więcej niż 200-1=199 impulsów ?
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Wg opisu z niebieskiej książki
Program dla 3 kanałów PWM
Strona 243
Jeżeli nasz licznik zlicza z częst. 40 kHz , to jeśli utworzymy PWM 8 bitowy, częstotliwość tę trzeba podzielić przez 256 żeby dowiedzieć się jaka będzie ostatecznie częstotliwość naszych kanałów PWM , 40 000/256 = ok. 156 Hz
D. dlaczego dzielimy przez licznik timera 8 bitowego= 255 ??
E. Czy nie powinniśmy zapisać … ostatecznie częstotliwość naszych kanałów PWM , 40 000/200 zamiast
40 000/256 ?
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
F. W książce użyto w kodzie porty: PD2, PD6, PD7, PC0, PC1, PC2 do komunikacji z diodami.
Czy należy ich użyć, czy są one przypadkowe ?
Zmieniłem w kodzie na Port D, ze wględu na łatwiejsze połączenie na zestawie ATB.