Hallo ATmega Spezialisten,
ich stehe auf dem Schlauch.
Ich möchte eine PWM von 10 kHz mit den Timern 0 und 1 des ATmega644 erzeugen.
Gewünschte Bedingungen:
F_CPU = 20 MHz
Timer 0: PWM Mode 3 (Fast PWM, TOP 0xFF, Prescaler 8 )
Timer 1: PWM Mode 14 (Fast PWM, TOP ICR1, Prescaler 8 )
Timer 0:
Timer 1:Code:TCCR0A = (1<<COM0A1)|(0<<COM0A0)|(1<<COM0B1)|(0<<COM0B0)|(1<<WGM01)|(1<<WGM00);
TCCR0B = (0<<FOC0A)|(0<<FOC0B)|(0<<WGM02)|(0<<CS02)|(1<<CS01)|(0<<CS00);
Was ist mein Problem?Code:TCCR1A = (1<<COM1A1)|(0<<COM1A0)|(1<<COM1B1)|(0<<COM1B0)|(1<<WGM11)|(0<<WGM10);
TCCR1B = (0<<ICNC1)|(0<<ICES1)|(1<<WGM13)||(1<<WGM12)|(0<<CS12)|(1<<CS11)|(0<<CS10);
TCCR1C = 0;
ICR1 = 249; // 10kHz
Timer 0 produziert eine wunderbare PWM mit 10 kHz (genau 9766 Hz).
Timer 1 zeigt mit Oszi aber eine PWM von 20 kHz.
Kann mir jemand sagen, was ich übersehe?