Atmega32

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
Awatar użytkownika
seweryn
Użytkownik
Posty: 147
Rejestracja: 08 gru 2005, 20:04
Lokalizacja: Praszka
Kontakt:

Atmega32

Post autor: seweryn » 30 lip 2006, 15:16

Jak skonfigurować w bascom timer0 aby pracował w trybie pwm??

ZbeeGin

Post autor: ZbeeGin » 30 lip 2006, 15:28

Bezpośrednio z polecenia CONFIG TIMER0 tego nie wykonasz. Musisz samemu pozapisywać odpowiednie wartości do rejestrów podpierając się notą katalogową (strony 78-81). :sad:

Przykładowo, używając nomenklatury BASCOMa w opisie trybu: Config Timer0 = PWM, Prescale = 8, PWM = FastPWM, COMPARE PWM = Clear Up; musisz napisać:

TCCR0 = &B01101010

Awatar użytkownika
seweryn
Użytkownik
Posty: 147
Rejestracja: 08 gru 2005, 20:04
Lokalizacja: Praszka
Kontakt:

Post autor: seweryn » 30 lip 2006, 16:46

co oznacza FastPWM??

ZbeeGin

Post autor: ZbeeGin » 30 lip 2006, 17:11

Tak w skrócie Timer0 w ATMega32 posiada dwa tryby pracy PWM:
  • Fast PWM - Licznik liczy od 0 do wartości max (255) i się zeruje, następnie znowu liczy w górę, itd. Stan końcówki OC0 zeruje się przy wykryciu zgodności wartości OCR0=TCNT0 a ustawia się podczas wyzerowania licznika. Można zatem wygenerować krótsze impulsy.
  • Phase Correct PWM - licznik liczy najpierw w górę, później w dół, następnie znów w górę, znowu w dół, itd. Stan końcówki OC0 zmienia się tylko podczas wykrycia zgodności OCR0=TCNT0: zeruje się przy liczeniu w górę, ustawia się przy liczeniu w dół. Rozdzielczość jest zatem większa, ale impulsy są ok. 1,999 razy dłuższe.
Odpowiednio modyfikując bity 5 oraz 4 w TCCR0 możesz zmienić polaryzację sygnału - zanegować stany wyjściowe OC0.


:arrow: Zapraszam do lektury noty katalogowej ATMega32.
Ostatnio zmieniony 14 sie 2006, 14:05 przez ZbeeGin, łącznie zmieniany 1 raz.

Awatar użytkownika
seweryn
Użytkownik
Posty: 147
Rejestracja: 08 gru 2005, 20:04
Lokalizacja: Praszka
Kontakt:

Post autor: seweryn » 30 lip 2006, 17:39

Dziękuje!!!

ODPOWIEDZ