mikrocontroller.net

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


Autor: Volker Kamin (volkerkamin)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: peter dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Volker Kamin (volkerkamin)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.