Nabend miteinander,
ich habe hier ein (in meinen Augen kurioses) Problem, das ich nicht
gelöst bekomme.
Ich habe einen STM32F103 und möchte verschiedene Timer Interrupts
nutzen. Da es aber nur eine ISR für diese Interrupts gibt muss ich in
der ISR über TIMx->SR abfragen, was den Interrupt ausgelöst hat. Dabei
werden mir aber immer falsche Events angezeigt, da ich das Status
Register nicht resetten kann.
Hier mal eine knappte Konfiguration für Timer 2
1 | RCC->APB1ENR |= RCC_APB1ENR_TIM2EN;
|
2 | TIM2->PSC=72;
|
3 |
|
4 | TIM2->CR1=TIM_CR1_CEN;
|
5 | //Nach dem aktivieren von Timer 2
|
6 | // werden in TIMx->SR die Bits UIF,
|
7 | // CC1IF, CC2IF, CC3IF und CC4IF gesetzt
|
8 |
|
9 | TIM2->SR=0;
|
10 | //Das resetten der gesetzten Bits
|
11 | // funktioniert so leider nicht,
|
12 | // die entsprechenden Bits bleiben High.
|
Wieso kann ich das Status Register nicht resetten?