DoubleBuffered OCR von Timer/Counter0 und OC0

OP #335413
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
Gast #335414
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.