|
|
|
@ -11,7 +11,7 @@ void intInit(
|
|
|
|
|
NVIC_SetPriority(interruptTypeIndexList[intType], priority);
|
|
|
|
|
|
|
|
|
|
// TODO: add index ceck!
|
|
|
|
|
intHandlerList[intType] = handler;
|
|
|
|
|
intHandlerList[intType] = (uint32_t)handler;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void intEnableAll()
|
|
|
|
@ -46,41 +46,51 @@ void TIM2_IRQHandler()
|
|
|
|
|
TIM2-> SR &= ~TIM_SR_UIF;
|
|
|
|
|
|
|
|
|
|
//TODO: call handler here
|
|
|
|
|
(intHandler_t)(intHandlerList[TIM2_UPDATE])();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(TIM->SR & TIM_SR_CC1IF) {
|
|
|
|
|
|
|
|
|
|
TIM2-> SR &= ~TIM_SR_CC12IF;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(TIM->SR & TIM_SR_CC12IF) {
|
|
|
|
|
|
|
|
|
|
TIM2-> SR &= ~TIM_SR_CC12IF;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(TIM->SR & TIM_SR_CC3IF) {
|
|
|
|
|
|
|
|
|
|
TIM2-> SR &= ~TIM_SR_CC3IF;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(TIM->SR & TIM_SR_CC4IF) {
|
|
|
|
|
|
|
|
|
|
TIM2-> SR &= ~TIM_SR_CC4IF;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(TIM->SR & TIM_SR_TIF) {
|
|
|
|
|
|
|
|
|
|
TIM2-> SR &= ~TIM_SR_TIF;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(TIM->SR & TIM_SR_CC1OF) {
|
|
|
|
|
|
|
|
|
|
TIM2-> SR &= ~TIM_SR_CC1OF;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(TIM->SR & TIM_SR_CC2OF) {
|
|
|
|
|
|
|
|
|
|
TIM2-> SR &= ~TIM_SR_CC2OF;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(TIM->SR & TIM_SR_CC3OF) {
|
|
|
|
|
|
|
|
|
|
TIM2-> SR &= ~TIM_SR_CC3OF;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(TIM->SR & TIM_SR_CC4OF) {
|
|
|
|
|
|
|
|
|
|
TIM2-> SR &= ~TIM_SR_CC4OF;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|