Hallo zusammen,
ich habe ein seltsame Beobachtung mit meinem STM32 und einem
Timer-Interrupt gemacht:
Wenn ich das Pending Flag erst ganz zum Schluß der ISR lösche
1 | void TIM6_IRQHandler()
|
2 | {
|
3 | (...)
|
4 | TIM_ClearITPendingBit(TIM6, TIM_IT_Update);
|
5 | }
|
wird die ISR immer zweimal ausgeführt.
Es sieht so aus, als ob das Löschen zu spät erfolgt und daher die ISR
nochmal ausgeführt wird.
Wenn ich das Pending Flag direkt zu Beginn ISR lösche
1 | void TIM6_IRQHandler()
|
2 | {
|
3 | TIM_ClearITPendingBit(TIM6, TIM_IT_Update);
|
4 | (...)
|
5 | }
|
ist alles okay.
Kann mir jemand sagen
- woran das liegt
- wo ich das hätte in den Manuals erkennen sollen?