Forum: Mikrocontroller und Digitale Elektronik Zählen von Pulssignalen bei PWM


von Andy G. (sahnich)


Lesenswert?

Hallo zusammen,
Ich bin wie viele andere auch, noch im Anfängerbereich und hoffe, dass 
ihr mir weiterhelfen könnt.

Ich habe ein Projekt bei dem ich mit Hilfe eines STM32F2 Boards an 
mehreren Ausgängen unterschiedlich lange(Gesamtpuls) PWM Signale 
erzeugen soll. Diese Anzahl der Pulse soll jedoch durch einen vorher 
definierten Wert begrenzt sein. Wo wir auch schon bei meinem Problem 
sind.

Ich habe das ganze mit einer Hardware PWM aufgebaut, bei der nach jedem 
Gesamtpuls ein Interrupt ausgelöst wird, der die Pulse zählt und mit dem 
vorher definierten Wert vergleicht. Durch die Interrupts bekomme ich 
aber leichte Verschiebungen von zwar nur 1µs, die summieren sich 
allerdings irgendwann. Daher suche ich nach einer anderen Lösung, ich 
habe schon überlegt ob ich einen weiteren Timer als Counter verwende, 
der bei z.B. steigender oder auch fallender Flanke  hochzählt und diesen 
Wer mit dem Anfangswert vergleicht. Bei Gleichheit soll dann nur zum 
Schluss ein Interrupt ausgelöst werden. Ist so etwas möglich bzw. gibt 
es vielleicht noch andere Möglichkeiten?

Über Hilfe vielleicht auch von jemandem der so etwas schon Programmiert 
hat würde ich mich sehr freuen.

MfG

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Andy G. schrieb:
> Durch die Interrupts bekomme ich aber leichte Verschiebungen von zwar
> nur 1µs, die summieren sich allerdings irgendwann.
Und was ist das Problem dabei? Was ist eigentlich das eigentliche 
Problem? Welche Aufgabe musst du lösen, dass du solche Tricks brauchst? 
Welche Frequenz hat deine PWM? Wieviele PWM-Ausgänge brauchst du? Wofür?

> Bei Gleichheit soll dann nur zum Schluss ein Interrupt ausgelöst werden.
> Ist so etwas möglich
Und warum erwartest du dann weniger Jitter?

von Klaus B. (Gast)


Lesenswert?

Zeig mal den seitherigen Code. Kann mir kaum eine Verschiebung von us 
vorstellen!
Ansonsten vllt auch eine Kombi beider Versionen!?
Timer für groben Zeitpunkt der etwas früher auslöst um dann einmalig den 
Interrupt der PWM zu aktivieren...

von Peter D. (peda)


Lesenswert?

Lothar Miller schrieb:
> Was ist eigentlich das eigentliche
> Problem? Welche Aufgabe musst du lösen, dass du solche Tricks brauchst?

Das wäre wirklich wichtig.
Oftmals lassen sich deutlich bessere Lösungen finden, wenn man erstmal 
das Problem kennt.

Für eine lückende PWM fällt mir beim besten Willen keine Anwendung ein.

Bei IR-FBs wird eine Trägerfrequenz getaktet, aber da kommt es nicht auf 
die µs an. Da kann man einfach 2 Timer nehmen, einen für den Träger und 
einen für die Pulsdauer.

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.