Hallo!
Ich möchte einen einfachen Aufruf einer Interruptroutine aus einem Timer
mit PWM haben.
Dazu erzeuge ich den meisten Code mit CubeMX.
1 | int main(void)
|
2 | {
|
3 | // ...
|
4 | HAL_Init();
|
5 | SystemClock_Config();
|
6 | MX_TIM3_Init();
|
7 | MX_NVIC_Init();
|
8 |
|
9 | HAL_TIM_PWM_Start_IT(&htim3, TIM_CHANNEL_3);
|
10 | // ...
|
11 | }
|
Der PWM-Ausgang des Timers, direkt auf einen Ausgangspin gelegt, zeigt
meine gewünschte Schaltfunktion. Wenn ich im globalen Interrupt aber
einen Pin schalte, passiert nichts. Der Interrupt wird nicht ausgelöst.
In NVIC_Init() steht u.a.:
1 | HAL_NVIC_SetPriority(TIM3_IRQn, 0, 0);
|
2 | HAL_NVIC_EnableIRQ(TIM3_IRQn);
|
Im Interrupt-Aufruf steht:
1 | void TIM3_IRQHandler(void)
|
2 | {
|
3 | HAL_GPIO_TogglePin(LD_0_GPIO_Port, LD_0_Pin);
|
4 |
|
5 | HAL_TIM_IRQHandler(&htim3);
|
6 | }
|
Was könnte hier falsch sein? Im Anhang noch die Initialisierung von
Timer 3.
Vielen Dank!