Werner A. wrote:
> Eigentlich sollte TCCR2A = (1<<WGM20)|(1<<WGM21); die FastPWM bis
> 0xFF einschalten (Tablelle 16-8) und TCCR2B = (1<<WGM22);
Nö, die WGMs musst du zusammen als Index in Tabelle 16-8 betrachten.
Damit hast du Mode 7 ausgewählt.
> zusammen mit TCCR2A |= (1<<COM2A0); das toggle von OC2A aktivieren
> (Tabelle 16-3)
Ich denke, die Fußnote 1 von Tabelle 16-4 trifft hier zu: "..., the
Compare Match is ignored, ...". Ich hab's aber im entsprechenden
Abschnitt nicht bis zu Ende verstanden, was in diesem Fall genau
ablaufen soll.
> Den Pin hatte ich bisher nicht als Ausgang gesetzt, da im Datenblatt
> beschrieben wird, das der OC2A Ausgang die bestehende funktionalität
> überschreibt.
Einen Satz später:
"However, note that the Data Direction Register (DDR) bit
corresponding to the OC2A pin must be set in order to enable the
output driver."
> Das verstehe ich nicht. Heißt dass, ich soll das Register mit 0x??
> beschreiben anstelle der seperaten Schreibweise?
Nein, aber die initiale Zuweisung für TCCR2x mit den nachfolgenden |=
Operationen vereinen.
> Generell werde ich glaub ich doch den CTC Modus verwenden. Scheint
> mir irgendwie einfacher zu verstehen zu sein ;-)
Nö, PWM mit TOP = 0xFF ist ziemlich Standard. Siehe auch das einfache
demo.c bei der avr-libc.