> Läuft das dann so dass der Timer zählt und wenn er Kompare A
> erreicht den einen Pin toggelt dann weiter zählt und bei
> Compare B einen anderen Pin toggelt? Oder wie soll ich mir
> das vorstellen?
Normalerweise geht man bei einer PWM so vor:
a) Fast PWM: Der Timer zählt hoch, bei erreichen des Compare-Wertes in
einem der Compare-Register wird der dazugehörige Pin entweder
ausgeschaltet (nichtinvertierte PWM, Tastverhältnis ist proportional zum
Compare-Wert) oder eingeschaltet (invertierte PWM, Tastverhältnis ist
umgekehrt proportional zum Compare-Wert). Bei erreichen des
eingestellten Maximalwertes (TOP) der PWM wird dann jeweils die
entgegengesetzte Aktion durchgeführt und der Timer (Register TCNTx) wird
auf null zurückgesetzt.
b) symmetrische (phasenrichtige oder phase correct) PWM: Der Timer zählt
hoch, bei erreichen eines Compare-Wertes wird (je nachdem, ob
invertierte oder nichtinvertierte PWM) der Pin gesetzt oder gelöscht,
siehe oben. Bei erreichen des Maximalwertes (TOP) wird die Zählrichtung
umgekehrt und bei erneutem Erreichen des Compare-Wertes (diesmal von
oben) wird der Pin wieder in den ursprünglichen Zustand geschaltet. Bei
null wird die Zählrichtung des Timers dann wieder umgekehrt und das
Spiel geht von vorne los.
> Wenn ich dich richtig verstanden habe, kann ich 6 unterschiedliche
> Pulsbreiten erzeugen.
Genau!
Wenn alle drei Timer mit dem selben TOP-Wert und Prescaler laufen (z.B.
8-Bit-PWM), dann hast Du 6 PWM-Kanäle mit derselben PWM-Frequenz, aber
unabhängig voneinander einstellbaren Tastverhältnissen zur Verfügung.