Zählen von Pulssignalen bei PWM

OP #3777554
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
Moderator (Firma: Titel) Persönliche Seite #3777561
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?
Gast #3777562
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...
#3777634
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.

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.