sebi87
28.09.2011, 21:18
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 :-(
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) {}
}
über eine Hilfe wäre ich sehr Dankbar
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 :-(
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) {}
}
über eine Hilfe wäre ich sehr Dankbar