Forum: Mikrocontroller und Digitale Elektronik CTC Mode - Vergleichswert ändern


von AVR-Frager (Gast)


Lesenswert?

Hi,

ich habe eine Frage zum CTC-Modus der AVRs. Und zwar benutze ich den 
Timer in meinem Rahmen, um zwischen einem Backpuffer und einem 
Frontpuffer zu wechseln. Der Frontpuffer wird dann ausgegeben. Effektiv 
kann ich damit die Bilder pro Sekunde steuern. Das funktioniert auch 
wunderbar.

Jetzt möchte ich verschiedene Animationen anzeigen können und dabei 
jeweils die Bilder pro Sekunde variieren. Dafür muss ich den 
Vergleichswert für den CTC-Modus dynamisch zur Laufzeit verändern. Gibt 
es dafür ein sich bewährtes Vorgehen?

Nach meinem Verständnis des Datenblatts sind die OCRxn Register im 
CTC-Modus nicht doppel-gepuffert. Dadurch kann es dann zu einem "Glitch" 
kommen, wenn der neue OCRxn Wert kleiner als der alte ist, und sich der 
Zähler zwischen dem neuen und alten Wert befindet. Dann muss der Zähler 
einmal "überlaufen".

Jetzt habe ich mir gedacht, dass ich erst den neuen OCRxn Wert setze, 
und anschließend den Zähler TCNTn auf 0 setze. Ich bin mir nur nicht 
sicher, ob dass jetzt in jedem Fall "richtig" ist, oder ob ich etwas 
übersehe?

Wie handhabt ihr so etwas?

von spess53 (Gast)


Lesenswert?

Hi

>Nach meinem Verständnis des Datenblatts sind die OCRxn Register im
CTC-Modus nicht doppel-gepuffert.

Man könnte auf fast PWM ausweichen.

MfG Spess

von AVR-Frager (Gast)


Lesenswert?

Ok, danke. Daran hatte ich noch gar nicht gedacht. War irgendwie zu sehr 
auf CTC fixiert bzw. mir war gar nicht bewusst, dass man den fast PWM 
Modus im Prinzip auch als CTC benutzen kann.

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
Noch kein Account? Hier anmelden.