www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mega 48/88, Frage zu den "Double Buffered Output Compare Registers"


Autor: Der kleine Niels (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Servus beisammen,

erstmal kurz zum Hintergrund:
Ich möchte 2 Pins an meinem uC unabhängig voneinander kurze Impule 
abgeben lassen. Die Periodendauer von Puls zu Puls an jedem der Pins ist 
eine Funktion der vorangegangenen Periodendauer. (Taktpulse für 2 
Schrittmotoren)
Ich dachte mir folgendes: ein Comparematch-Interrupt (z.B. Timer0 trifft 
OCR0A) wird ausgelöst, der Pin wird getoggelt, die neue Periodendauer in 
Zählertakten wird berechnet und auf den aktuellen OCR0A draufgerechnet, 
und wieder in OCR0A gespeichert. Abschließend wird der Pin 
zurückgetoggelt.

Nun frage ich mich jedoch, was das für Auswirkungen mit diesem Doubled 
Buffered Register haben wird und ob es Möglichkeiten gibt Probleme zu 
umgehen.
Es könnte ja schließlich sein, dass ein Interrupt bei Timerwert 1 
ausgelöst wird, und ein Weiterer 200 Zählertakte später ausgelöst werden 
soll. Mit den gepufferten Registern würde das ja nach meinem Verständnis 
nicht funktionieren.

Hat jemand einen Rat für mich?

lg
Niels

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die  "Double Buffered Output Compare Registers" hast du ja nur in den 
PWM-Modes. Deine Anwendung klingt ja aber eher danach, dass du den 
Zähler im Normal-Mode durchlaufen lassen willst. Und da werden die 
Output-Compare-Register sofort aktualisiert.

Autor: Der kleine Niels (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ja richtig, der Timer soll ganz Normal ohne PWM laufen.
Ach ist das dieses "Update of OCRx at"?

Btw.:
Wo ist dabei der entscheidende Unterschied zwischen TOP und BOTTOM?
Ist das wirklich "nur" dieser eine Zählerschritt, oder hat das 
tiefgründigere Auswirkungen?

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.