|
|
@ -1,5 +1,5 @@
|
|
|
|
#include "timer.h"
|
|
|
|
#include "timer.h"
|
|
|
|
|
|
|
|
#include "interrupt.h"
|
|
|
|
|
|
|
|
|
|
|
|
#define BASE ((TIM_TypeDef *)timerBase_Addr_List[timer])
|
|
|
|
#define BASE ((TIM_TypeDef *)timerBase_Addr_List[timer])
|
|
|
|
|
|
|
|
|
|
|
@ -248,3 +248,68 @@ void timerThrowError(timerError_t error)
|
|
|
|
while(1);
|
|
|
|
while(1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Interrupt service routines
|
|
|
|
|
|
|
|
void TIM2_IRQHandler()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if(TIM2->SR & TIM_SR_UIF) {
|
|
|
|
|
|
|
|
// clear flag
|
|
|
|
|
|
|
|
TIM2-> SR &= ~TIM_SR_UIF;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//TODO: call handler here
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM2_UPDATE]))();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(TIM2->SR & TIM_SR_CC1IF) {
|
|
|
|
|
|
|
|
TIM2-> SR &= ~TIM_SR_CC1IF;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM2_COUNTERCOMPARE_1]))();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(TIM2->SR & TIM_SR_CC2IF) {
|
|
|
|
|
|
|
|
TIM2-> SR &= ~TIM_SR_CC2IF;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM2_COUNTERCOMPARE_2]))();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(TIM2->SR & TIM_SR_CC3IF) {
|
|
|
|
|
|
|
|
TIM2-> SR &= ~TIM_SR_CC3IF;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM2_COUNTERCOMPARE_3]))();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(TIM2->SR & TIM_SR_CC4IF) {
|
|
|
|
|
|
|
|
TIM2-> SR &= ~TIM_SR_CC4IF;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM2_COUNTERCOMPARE_4]))();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(TIM2->SR & TIM_SR_TIF) {
|
|
|
|
|
|
|
|
TIM2-> SR &= ~TIM_SR_TIF;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM2_TRIGGER]))();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(TIM2->SR & TIM_SR_CC1OF) {
|
|
|
|
|
|
|
|
TIM2-> SR &= ~TIM_SR_CC1OF;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM2_CAPTURECOMPARE_1]))();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(TIM2->SR & TIM_SR_CC2OF) {
|
|
|
|
|
|
|
|
TIM2-> SR &= ~TIM_SR_CC2OF;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM2_CAPTURECOMPARE_2]))();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(TIM2->SR & TIM_SR_CC3OF) {
|
|
|
|
|
|
|
|
TIM2-> SR &= ~TIM_SR_CC3OF;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM2_CAPTURECOMPARE_3]))();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(TIM2->SR & TIM_SR_CC4OF) {
|
|
|
|
|
|
|
|
TIM2-> SR &= ~TIM_SR_CC4OF;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM2_CAPTURECOMAPRE_4]))();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|