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.
Rudii schrieb: > Nur finde ich dafür keinen passenden Interrupt oder ein Callback? Der Timer OVF sollte bei jedem PWM Puls einmal stattfinden.
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.
>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.
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?
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.