Forum: Mikrocontroller und Digitale Elektronik PWM zeitversetzt ansteuern


von Ralf (Gast)


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

von Karl H. (kbuchegg)


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)

von Ralf (Gast)


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

von Ralf (Gast)


Lesenswert?

>Denn im Moment hab ich das Gefühl die Fragestellung
>nicht verstanden zu haben

Wie wärs, wenn du dann einfach mal einen Thread NICHT verunstaltest?

von Purzel H. (hacky)


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.

von Ralf (Gast)


Lesenswert?

>Du moechtest einem Polyphasenwandler bauen.

Ich weiß selbst, was ich möchte. Fremdwörter ohne Ahnung helfen keinem 
weiter.

von Ralf (Gast)


Lesenswert?

Super... Da melden sich welche mit meinem Namen an. Jungs, nehmt die 
nicht ernst!!!

Ralf (Topic-Starter)

von Ralf (Gast)


Lesenswert?

Jungs, nehmt auch mich nicht ernst!!! Ich bin zu blöd, mich anzumelden 
und beschwere mich, dass andere sich auch nicht anmelden!!!

Ralf (Topic-Ender)

von Klaus D. (kolisson)


Lesenswert?

.. Hm
wenn doch deine Wertetabelle in einem Array steht kannst du doch
für kanal 1 den wert mit index i nehmen. für Kanal 2 dann z.B Index i+2
oder so.

Gruss

von Ralf (Gast)


Lesenswert?

Was spricht denn gegen Index i+1? Ich habe ja nicht beliebig viele 
Kanäle, so dass ich nicht jeden 2. auslassen kann.
Dein Vorschlag leuchtet mir nicht ganz ein.

von Ralf (Gast)


Lesenswert?

Oh man, hoffentlich ist der Schnarchzapfen bald im Bett...

@Klaus De lisson:
Ich antworte morgen drauf, das wird mir mit dem Spassvogel grad zu 
blöd...

Ralf

von Ralf (Gast)


Lesenswert?

Ich bin ja so ein Schnarchzapfen. Ich komme doch gerade erst aus dem 
Bett. Können wir mein Problem jetzt bitte weiter diskutieren? Ich bin 
leider nicht so helle, dass ich selbst voran käme.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.