Forum: Mikrocontroller und Digitale Elektronik STM32 Timer Funktionen


von Blob (Gast)


Lesenswert?

Hallo zusammen,

ich habe Probleme, dass mein STM32H7 "hängen bleibt", wenn ich 
nacheinander

1
HAL_TIM_Base_Start(&htim4);
2
HAL_TIM_OC_Start_IT (&htim4, TIM_CHANNEL_1 );

aufrufe. Beides einzeln funktioniert wunderbar. Da ich gerade Umsteiger 
auf den STM32 bin habe ich noch keine große Erfahrung damit:
Ist es generell nicht möglich, beides nacheinander aufzurufen?

von W.S. (Gast)


Lesenswert?

Blob schrieb:
> Ist es generell nicht möglich, beides nacheinander aufzurufen?

Das hat weder mit der Architektur Cortex M noch mit deinem speziellen 
Chip noch mit dem Timern noch mit der Programmiersprache C zu tun - 
sondern es hat damit zu tun, was diese von irgendwem geschriebenen 
Funktionen denn so anstellen.

Also, wenn du den Quellcode zu diesem Zeug hast, dann schau dort hinein. 
Die bessere Alternative wäre, sich selbst genau das zu schreiben, was 
man für den konkreten Anwendungsfall braucht.

W.S.

von J. S. (jojos)


Lesenswert?

Es ist wohl nicht gedacht diese Funktionen so zu mischen:

UM2217 Rev.6, S. 1763
1
4.
2
Configure the TIM in the desired functioning mode using one of the Initialization function of this driver:
3
– HAL_TIM_Base_Init: to use the Timer to generate a simple time base
4
– HAL_TIM_OC_Init and HAL_TIM_OC_ConfigChannel: to use the Timer to generate  an Output
5
Compare signal.
6
- ...
7
8
5.
9
Activate the TIM peripheral using one of the start functions depending from the feature used:
10
– Time Base : HAL_TIM_Base_Start(), HAL_TIM_Base_Start_DMA(), HAL_TIM_Base_Start_IT()
11
– Input Capture : HAL_TIM_IC_Start(), HAL_TIM_IC_Start_DMA(), HAL_TIM_IC_Start_IT()
12
– Output Compare : HAL_TIM_OC_Start(), HAL_TIM_OC_Start_DMA(), HAL_TIM_OC_Start_IT()

Wenn der Timer trotzdem vorher schon laufen soll, dann kann man den OC 
wahrscheinlich mit den LL Makros dazupacken.

: Bearbeitet durch User
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
Noch kein Account? Hier anmelden.