STM32 Hardware PWM Pulse zählen

Gast #4333800
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.
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
>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
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

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.