Du hast Timer 1 auf 9-Bit FastPWM (TOP=0x1FF) konfiguriert und Timer 2 auf 8-Bit FastPWM (TOP=OCR2A) konfiguriert. Du willst für Timer 2 vermutlich einen Konstanten TOP-Wert von 0xFF, dazu darf WGM22 aber nicht gesetzt sein.
mfG
Markus
Hallo Leute,
wie in der Überschrift schon geschrieben habe ich Probleme mit dem Timer2 des AtMega644. Mit Timer0 und Timer1 komme ich zurrecht und wenn ich Timer2 verwenden möchte verzweifel ich, da dieser nicht macht was er soll.
Muss ich hier irgendetwas spezielles beachten?
Hier mal ein kleines Beispiel (PWM auf TImer1 und Timer2)
Timer1 geht problemlos; Timer2 zwei macht einfach nix, mit Oszi überprüft
über eine Hilfe wäre ich sehr DankbarCode:int main(void) { // OC1A auf Ausgang DDRD = (1 << PD5 ) | (1 << PD7 ); //ATMega644 TCCR1A = (1<<COM1A1) | (1<<WGM11); TCCR1B = (1<<WGM12) | (1<<CS10); TCCR2A = (1<<WGM21) | (1<<WGM20) | (1<<COM2A1) ; TCCR2B = (1<<WGM22) | (1<<CS20) ; OCR1A = 0x10; OCR2A = 0x10 ; while (1) {} }
Du hast Timer 1 auf 9-Bit FastPWM (TOP=0x1FF) konfiguriert und Timer 2 auf 8-Bit FastPWM (TOP=OCR2A) konfiguriert. Du willst für Timer 2 vermutlich einen Konstanten TOP-Wert von 0xFF, dazu darf WGM22 aber nicht gesetzt sein.
mfG
Markus
Das ist nur ein Beispiel. Ich will den Timer für etwas anderes nutzen. Habe aber wie beschrieben das Problem das ich den Timer gar nicht zum laufen bekomme.
Hallo,
ok der Beitrag war etwas unqualifiziret. Ich hab das Beispiel gepostet, weil ich das zum Spielen mit dem Timer2 genutzt habe.
@markusj: Wenn ich das WGM22 nicht setzte funktioniert das so wie ich es wollte, muss ich irgendwie übersehen haben das ich da im falschen Mode bin.
Danke
Lesezeichen