STM32 Hardware PWM Pulse zählen

Gast #4333800
Lesenswert?
• ▲
▼
Guten Morgen,
ich habe hier einen STM32F411RE-Nucleo und habe dessen Hardware-PWM am 
laufen. Sieht auf dem Oszi. auch ganz gut aus.

Nur muss ich jetzt diese Pulse zählen und beim 4096(en) ein Ereignis 
auslösen.

Nur finde ich dafür keinen passenden Interrupt oder ein Callback?

Wollte HAL_TIM_PWM_PulseFinishedCallback nutzen. Dachte dieser wird nach 
jedem Puls aufgerufen, aber dem ist nicht so (?)

Hab mir mal die Implementierung von diesem Callback angeschaut und das 
wird im IRQHandler aufgerufen wenn irgendetwas mit Capture/Compare 
passiert.

Naja ich hoffe mir kann jemand sagen wie ich diese Pulse zählen kann. 
Oder geht das nur wenn ich das PWM mit Software realisiere.

MfG.
#4333999
Lesenswert?
• ▲
▼
Matthias S. schrieb:
> Rudii schrieb:
>> Nur finde ich dafür keinen passenden Interrupt oder ein Callback?
>
> Der Timer OVF sollte bei jedem PWM Puls einmal stattfinden.

Ich habe mit dem STM32 auch schon PulseTrain-Ausgänge realisiert. Ich 
zähle dazu die Pulse in einem Interrupt runter. Nach dem letzten Impuls 
deaktiviere ich den Timer und setze das CNT-Register so, dass der Pegel 
des Ausgangs die Ruhestellung behält.
Gast #4334332
Lesenswert?
• ▲
▼
>Nur finde ich dafür keinen passenden

Je nach PWM Frequenz gibt es 2 Lösungen.

1. PWM langsam (<1kHz)
den PWM Ausgang auf einen beliebigen Eingang legen und einen Interrupt 
auf steigende oder fallende Flanke auslösen lassen. In der ISR die IRQs 
zählen
Lösung quick and dirty

2. PWM schnell (>10kHz)
den PWM Ausgang auf einen Takteingang eines anderen Timers legen, ggf. 
Vorteiler passend wählen und bei bestimmten Zählerstand IRQ auslösen 
lassen
Funktioniert auch gut bei hohen Frequenzen

alle Frequenzen dazwischen kommen auf die Auslastung des uC an.

Gruß,

dasrotemopped.
Persönliche Seite #4334361
Lesenswert?
• ▲
▼
Hast Du das Kapitel 61.3.2 "How to use this driver" gelesen?

Was genau, was dort beschrieben ist, funktioniert denn nicht?

* Initialize the TIM low level resources
* The external Clock can be configured, if needed
* Configure the TIM in the desired functioning mode
* …

http://www.st.com/st-web-ui/static/active/jp/resource/technical/document/user_manual/DM00105879.pdf

Hast Du den Interrupt mit STM32CubeF4 eingeschaltet?

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.