PWM zeitversetzt ansteuern

Gast #2022497
Lesenswert?
• ▲
▼
Hi,

ich brauch hier mal Hilfe, um den richtigen Denkanstoß zu finden.

Ich hab eine Software-PWM mit acht Kanälen. Die PWM-Werte stammen aus 
einer Wertetabelle. Jede Zeile der Tabelle möchte ich einmal vorwärts 
und rückwärts durchlaufen, danach die nächste Zeile, usw. bis zum 
Tabellenende.
Die PWM-Kanäle sollen zeitversetzt angesteuert werden (alle mit der 
gleichen Zeit und die Dauer bis zum nächsten Wertesprung ist ebenfalls 
identisch).
Wie kann ich das nun am besten realisieren? Alles was ich mir an PAPs, 
Notizen, etc. zusammengestellt hab, will nicht so recht fruchten, ich 
komm schon auf dem Papier nicht zu einer Lösung :(
Es hat eigentlich nur bis dahin gereicht, dass ich mit einer 
State-Machine für jeden Kanal arbeiten muss (denke ich) bzw. mit einer 
State-Machine und jeder Kanal hat eine eigene State-Variable sowie 
Indizes für die Tabellenposition.

Kann mir jemand n Schubs in die richtige Richtung geben?

Ralf
#2022503
Lesenswert?
• ▲
▼
So richtig versteh ich noch nicht, wo da jetzt das Problem liegt. Für 
jeden Kanal ein eigener Index, welches der nächste Tabelleneintrag ist. 
Und bei der Weiterschaltung wird halt jeder Kanal extra behandelt und 
unabhängig von allen andern weitergeschaltet.

Oder denke ich da jetzt zu einfach? Zu naiv?
(Kann schon sein. Denn im Moment hab ich das Gefühl die Fragestellung 
nicht verstanden zu haben)
Gast #2022778
Lesenswert?
• ▲
▼
Hallo Karl Heinz,

> So richtig versteh ich noch nicht, wo da jetzt das Problem liegt.
In der Komplexität :) Zumindest sieht jeder Ansatz den ich bis jetzt 
hatte nach kurzer Zeit sehr komplex aus.

> Für jeden Kanal ein eigener Index, welches der nächste Tabelleneintrag ist.
> Und bei der Weiterschaltung wird halt jeder Kanal extra behandelt und
> unabhängig von allen andern weitergeschaltet.
Ja, so in der Art dachte ich das auch. Und wie stellst du jetzt den 
Zeitversatz der Kanäle zueinander her? Das bedeutet zwangsläufig, jeder 
Kanal muss mindestens den Zustand/Index des vorhergehenden Kanals 
kennen.

> Oder denke ich da jetzt zu einfach? Zu naiv?
> (Kann schon sein. Denn im Moment hab ich das Gefühl die Fragestellung
> nicht verstanden zu haben)
Kann sein, macht ja nix :)
Die Frage ist einfach, wie man das am einfachsten realisiert. 
State-Machine, etc.

Ralf
#2022798
Lesenswert?
• ▲
▼
Du moechtest einem Polyphasenwandler bauen. Alle PWM haben dieselbe 
Frequenz. Der erste kanal startet bei phase=0, der Zweite bei Phase= 45, 
der Dritte bei Phase = 90, ... und jeder Kanal hat die Pulsbreite, die 
er eben hat. Ja. Falls die Hardware das unterstuetzt ... sonst muss die 
Software ran. Per software ... man laesst einen Timer laufen der einer 
achtel frequenzperiode entspricht und laedt jdes mal den naechsten PWM.

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.