Versuche gerade den Timer 0 im CTC-Mode zu betreiben, so dass die Pins OC0A und OC0B bei jedem Match die Polarität im Gegentakt wechseln. Die Pins sind als Ausgänge (DDRD) definiert und OC0A auf High und OC0B auf Low gesetzt(PORTD). Da das nicht funktioniert (die Pegel bleiben gleich) stellt sich die Frage, ob das überhaupt möglich ist.
Bogdan schrieb: > OC0A auf High und OC0B auf > Low gesetzt(PORTD) Genau da liegt dein Denkfehler. Wenn die Pins mit dem Timer verbunden sind, ist PORTD komplett irrelevant, es zählen dann nur noch die Timer internen Pinzustände. Die kannst du mit einem "Force Compare Match" beeinflussen.
Stefan E. schrieb: > Bogdan schrieb: >> OC0A auf High und OC0B auf >> Low gesetzt(PORTD) > > Genau da liegt dein Denkfehler. Wenn die Pins mit dem Timer verbunden > sind, ist PORTD komplett irrelevant, es zählen dann nur noch die Timer > internen Pinzustände. Die kannst du mit einem "Force Compare Match" > beeinflussen. Danke für deinen Hinweis auf "Force Compare Match".
Bogdan schrieb: > Versuche gerade den Timer 0 im CTC-Mode zu betreiben, so dass die Pins > OC0A und OC0B bei jedem Match die Polarität im Gegentakt wechseln. Die > Pins sind als Ausgänge (DDRD) definiert und OC0A auf High und OC0B auf > Low gesetzt(PORTD). > > Da das nicht funktioniert (die Pegel bleiben gleich) stellt sich die > Frage, ob das überhaupt möglich ist. Ist es. Und man braucht nur ein einziges Mal was dafür zu tun, nämlich beim Start des Timers. Dafür gibt's die FOC-Bits. Allerdings: Sobald sich an der Einstellung von OCRnA/OCRnB zur Laufzeit etwas ändern soll, dürfte es i.d.R. weitaus sinnvoller sein, einen PWM-Modus statt CTC zu verwenden...
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.