uC mit präziser PWM-Steuerung bzw. Sequenzer

Gast #2608540
Lesenswert?
• ▲
▼
Hallo,

ich habe folgende Problem: eine PWM mit gewissem "duty cycle" soll nach 
einer Anzahl Durchläufe einen Interrupt auslösen. Innerhalb des 
Interrupthandlers wird dann ein neues Timing für die PWM gesetzt.
Soweit ansich kein Problem. Aber: Die Abarbeitung nimmt auch einige 
Zyklen in Anspruch, insofern verzögert sich das Neu-Setzen der PWM. Bei 
einer hohen Genauigkeit um wenige Zyklen führt das irgendwann zu einem 
grösseren Versatz gegenüber dem Systemtakt. Da das System noch andere 
IRQ abarbeitet, ist das ganze nicht wirklich deterministisch.
Kennt jemand einen (möglichst simplen) uC, bei dem PWM-Werte quasi beim 
Schreiben erst intern gepuffert werden und erst beim Überlauf bzw. 
Erreichen des Schwellwertes (welches den Interrupt auslöst) automatisch 
in die Zähler-Register gelatcht werden?
Die letzte Instanz wäre programmierbare Logik, aber noch gebe ich auf 
der uC-Seite nicht auf..
Gast #2608552
Lesenswert?
• ▲
▼
Wie wäre es damit, einfach alle Werte zwei mal im Speicher zu haben?
Im ersten sind die Werte, die geändert werden, im zweiten sind die Werte 
die abgearbeitet werden.
In der Pause zwischen zwei Zyklen wird jeweils die erste auf die zweite 
Liste übertragen?
Gast #2608693
Lesenswert?
• ▲
▼
Bei den ATmega hat der Timer auch genug Möglichkeiten, um per 
Compare-Match und Overflow für ein PWM-Signal mit genau definierten 
Werten zu sorgen, indem das Vergleichsregister rechtzeitig gesetzt wird. 
Einfach mal einen Blick in den Abschnitt über die Timer Modi werfen.
Und dann kommt es ein bisschen auf die PWM-Auflösung, die Randbedinungen 
für die Frequenz und maximal möglicher Interupt-Latenz drauf an.

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.