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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren