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
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?
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...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.