Der PWM Ausgang soll mit fester Periodendauer arbeiten (Konstanter Wert im TACCR0, Timer im Up Modus). Als PWM Ausgang dient der Block 1 des Timer A mit dem Vergleichswert in TACCR1 im Reset-Set Modus. Über die Variation des Wertes im TACCR1 soll jetzt die Pulsbreite vom 0 bis 100% gesteuert werden. Die Aktualisierung der Pulsbreite erfolgt dabei über einen Interrupt der ebenfalls vom Timer A über Block 2 aushgelöst wird. Über TACCR2 kann eingestellt werden, bei welchem Zählerstand der Vergleichswert TACCR1 aktualisiert wird. Ziel ist, für den nächsten Lauf des PWM die Pulsbreite vorzugeben. Das Problem dabei ist: immer wenn die Pulsbreite auf 0 gestellt wird (TACCR1=0), geht der Ausgang einen Bruchteil einer Sekunde auf High und dann erst auf Lo. Es macht dabei scheinbar keinen Unterschied, wann in TACCR1 die 0 geschrieben wird. der Effekt ist reproduzierbar. Wie kann dieses Verhalten unterdrückt werden?
Hast du den User Guide (slau049d) schon durchgelesen? Ich weiss es nicht mehr auswendig, aber irgendein "seltsames" Verhalten des Timers wurde da erklärt. Irgendwas mit Zeitpunkt des Schreibens in CCR1 beeinflusst die PWM oder so ...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.