logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[bascom] [bascom][atmega8] Jak ustawić Timer1 jako 8-bitowy FastPWM (non-inverting)?

tzok 27 Sie 2008 23:26 2355 6
REKLAMA

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy konfiguracji Timer1 w mikrokontrolerze ATMega8 do trybu 8-bitowego FastPWM (non-inverting) z wyjściem na OC1A i porównaniem do OCR1A. Wyjaśniono, że zapis WGM13:0 oznacza cztery bity (WGM13, WGM12, WGM11, WGM10), które należy ustawić na wartość 15 dziesiętnie (1111 binarnie) zgodnie z tabelą 39 w dokumentacji ATMega8. Zaproponowano bezpośrednie ustawienie rejestrów TCCR1A i TCCR1B za pomocą wartości binarnych, np. TCCR1A=&B01000011 i TCCR1B=&B00011001. Autor potwierdził działanie trybu nr 5 z konfiguracją TCCR1A=&B10000001 i TCCR1B=&B00001001, zauważając jednak pojawianie się "szpilek" przy pwm1a=0. Poruszono także kwestię przełączania pinu PINB.1 z rejestru PORTB.1 na funkcję OC1A, gdzie wskazano, że wartość w rejestrze PORTB.1 nie ma znaczenia, a przed uruchomieniem timera należy wyzerować PORTB.1 i ustawić DDRB.1 jako wyjście. Zalecane jest sterowanie bitem COM1A1 w TCCR1A w zależności od wartości wypełnienia PWM, aby uniknąć niepożądanych impulsów na wyjściu.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA