Forum: Mikrocontroller und Digitale Elektronik DoubleBuffered OCR von Timer/Counter0 und OC0


von Volker K. (volkerkamin)


Lesenswert?

Hallo alle zusammen.

Ich schreibe zur Zeit einen Simulator für einen ATMega16, um damit den
Statespace für einen Model Checker aufzubauen. Aus der Dokumentation
von Atmel habe ich eigentlich fast alles, was ich brauche, aber ein
paar Dinge sind mir noch nicht wirklich endgültig klar:

Wenn der Timer0 in PWM-Modus ist, dann ist das OCR gepuffert, um das
PWM-Signal symetrisch zu halten. Ich gehe davon aus, dass der Puffer
nicht nur bei TOP bzw BOTTOM übertragen wird, sondern auch, wenn der
Timer0 den PWM-Modus verlässt, aber das steht nicht explizit in der
Doku. Ebenso steht in der Doku nicht drin, dass der aktuelle Wert des
OCR in den Puffer geschrieben wird, wenn der Timer0 in PWM-Modus geht.
Außerdem gehe ich davon aus, dass der Timer0 ein internes Bit hat, in
dem er den Wert für OC0 speichert, dass dann (bei passendem COM) über
PVOE/PVOV den Port überschreibt, dass dieses Bit mit 0 initialisiert
wird und dass es sich nur durch FOC oder Output-Compare-Matches
ändert.

Ich brauche jetzt keine dummen Kommentare, sondern würde gerne etwas
Feedback von jemandem bekommen, der es weiß!

Vielen Dank
Volker Kamin

von peter dannegger (Gast)


Lesenswert?

Eine PWM hat grundsätzlich einen Tiefpaß nachgeschaltet, um das
Analogsignal zu erzeugen. Sei es ein RC-Tiefpaß oder die Trägheit des
Auges oder die mechanische Trägheit eines Motors.

Anders gesagt, es interessiert keinen, wie sich eine PWM beim
Einschalten verhält, Hauptsache es wird der gewünschte Analogwert
erreicht.
Und ich kenne keine Anwendung, die ständig zwischen PWM und Timer hin
und her schaltet. Wenn ich eine PWM brauche, dann doch für die gesamte
Programmlaufzeit.


Wenn es Dich aber doch interessiert, wird Dir wohl nichts anderes übrig
bleiben, als es selber auszuprobieren.

Ich würde dabei auch nicht darauf vertrauen, daß der Simulator es
richtig macht, man sollte schon einen echten AVR nehmen.


Peter

von Volker K. (volkerkamin)


Lesenswert?

Leider interessiert es mich doch :-)

Ein Model Checker soll ja formal die Korrektheit beweisen, da muss der
Simulator schon ganz genau sein.
Aber ich sehe schon, dass das auf die TODO-Liste der in echt zu
testenden Dinge landen wird.
Das der AVR Simulator wenig taugt, weiß ich leider schon.

Volker

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.