Ok ich hätte mir wohl gleich das Datenblatt vornehmen sollen^^ Das hab ich soweit verstanden:

8bit Timer:

TCCR0A - WGM00/WGM01: Geben den Timer Modus an (zusammen mit WGM02 aus TCCR0B)
COM0A1/COM0A0: Legen fest was mit dem PIN OC0A (je nach Modus) passieren soll.
COM0B1/COM0B0: Legen fest was mit dem PIN OC0B (je nach Modus) passieren soll.
TCCR0B - CS00/CS01/CS02: Setzten die Geschwindigkeit des Timers (den Prescaler)
WGM02: Gehört zu WGM0:1 aus TCCR0A

TCNT0 - Der 8bit Zählwert 0..255

OCR0A - 8bit Vergleichswert für pin OC0A.
OCR0B - 8bit Vergleichswert für pin OC0B.

TIMSK - Bestimmt ob bei einem jeweiligen Compare Match/Overflow außer dem pin-umlegen
auch noch ein Interrupt ausgelöst werden soll.
OCIE0A: Wenn gesetzt -> Interrupt bei Compare Match von OCR0A.
OCIE0B: Wenn gesetzt -> Interrupt bei Compare Match von OCR0B.
TOIE0: Wenn gesetzt -> Interrupt bei Overflow von TCNT0.

(TIFR - Enthält die Compare Match Flags bzw. das Overflow Flag)

/* Zum Verständnis: Es gibt beim Timer keinen Compare Match-losen Modus. Wenn man die
Möglichkeiten der Compare/Vergleich/Pinumlegungs-Modi nicht benutzen will, sondern
z.B. nur den "normalen" Timer der bis 255 zählt und dann eine ISR aufruft haben will,
lässt man die WGM0:2/OCR/COM-Bits einfach leer und startet den Timer einfach über
CS00/CS01/CS02 in TCCR0B und setzt das Overflow-Interrupt-Bit TOIE0 in TIMSK.

In diesem "normalen" Modus (WGM-Bits auf 0) einem der Vergleichswerte der OC-Bits einen
Wert gibt und über die COM0-Bits sagt, wie der pin beim Compare Match gesetzt werden
soll, passiert auch das. (pin als Ausgang schalten nicht vergessen)
(wenn gleichzeitig noch ein Compare Match Interrupt ausgelöst werden soll->TIMSK)

Im CTC-Modus wird das eine Compare-Register (OCR0A) benutzt um die Obergrenze von 255
auf einen beliebigen, kleineren Wert zu setzten, bis zu dem der Timer dann immer zählt.
Die Compare Match-Pinumlegungsmöglichkeiten hat man aber nach wie vor und OCR0B kann
man immer noch frei in diesem Bereich bewegen. Lediglich der Compare-Match-Interrupt
den OCR0A auslöst, findet gleichzeitig mit dem Overflow-Interrupt statt.

Zu dem PWM-Modi zählen der Fast PWM-Modus, in dem der Timer, wie im "normalen" Modus,
immer bis 255 zählt, aber im Gegensatz dazu wird ein OC-Bit hier nicht nur beim
Compare Match verändert, sondern noch ein zweites Mal beim Overflow.
(was in jedem Modus jeweils passiert wird über die COM-Bits festgelegt)

Der zweite PWM-Modus ist der Phase Correct Modus, in dem der Timer wieder von 0..255
zählt, dann jedoch keinen Overflow verursacht und wieder bei 0 anfängt, sondern
anschließend rückwärts bis 0 zurück zählt. Auch hier werden die Bits (wie im Fast PWM)
zweimal verändert. Einmal beim Compare Match, wenn der Zähler beim Hochzählen
vorbeikommt und das zweite Mal beim Runterzählen.
(einen Overflow Interrupt kann es also nicht geben)
Beide PWM-Modi kann man auch CTC-artig benutzen, also dass nicht bis 255 sondern bis
zu dem Wert gez#hlt wird, den man in OCR0A gesetzt hat. (WGM0:1:2 in Mode 5 bzw. 7) */




Frage1: Wenn man den CTC-Modus benutzt, wird der TOP-Wert laut Datenblatt in OCR0A
erwartet. Heißt das, dass man nur noch OCR0B frei setzten kann?

Frage2: Im Datenblatt auf Seite 75 steht in der Tabelle zum Phase Correct PWM Mode, dass
einmal ORC0B ge-cleart wird, dann dass OCR0B gesetzt wird, überall wird von OCR0B geredet
dabei macht das doch gar keinen Sinn, weil es hier doch um den Port OC0B geht.
Haben die (perfekten Atmel-Leute hier etwa einen Fehler reingebaut und überall ein R
reingeschrieben, wo es nicht hin gehört?
In der Tabelle für OC0A steht das nämlich alles ohne R da.

Frage3: In Tabelle 40 auf Seite 75 des Datenblattes gibt es eine Spalte "Update of OCRx at"
Warum wird OCRx ge-updatet und nicht der zugehörige Port OCx. Ich dachte die OCR0A/OCR0B
Werte verändert nur der User, wie er sie braucht. Und wenn da tatsächlich die Output-Pins
gemeint sind, warum steht dann nicht in jeder Zeile Immediate.
Was würde es für einen Sinn machen den Pin, der z.B. im Mode1-Phase-Correct beim Hochzählen
gesetzt werden soll, erst beim Erreichen von TOP zu updaten/zu setzten. Das ist dann doch
ein ganz anderer Zeitpunkt. Und wenn anschließend runtergezählt wird, der Pin beim
Compare Match beim Runterzählen wieder gesetzt werden sollte, wird er es auch nicht,
sondern erst beim nächsten Erreichen von TOP? Das kann nicht sein.