|
|
|
@ -249,67 +249,167 @@ void timerThrowError(timerError_t error)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Interrupt service routines
|
|
|
|
|
|
|
|
|
|
void TIM1_BRK_UP_TRG_COM_IRQn()
|
|
|
|
|
{
|
|
|
|
|
if(TIM1->SR & TIM_SR_BIF) {
|
|
|
|
|
TIM1->SR &= ~TIM_SR_BIF;
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM1_BREAK]))();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(TIM1->SR & TIM_SR_UIF) {
|
|
|
|
|
TIM1->SR &= ~TIM_SR_UIF;
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM1_UPDATE]))();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(TIM1->SR & TIM_SR_TIF) {
|
|
|
|
|
TIM1->SR &= ~TIM_SR_TIF;
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM1_TRIGGER]))();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(TIM1->SR & TIM_SR_COMIF) {
|
|
|
|
|
TIM1->SR &= ~TIM_SR_COMIF;
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM1_COMMUNICATION]))();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void TIM1_CC_IRQn()
|
|
|
|
|
{
|
|
|
|
|
if(TIM1->SR & TIM_SR_CC1IF) {
|
|
|
|
|
TIM1-> SR &= ~TIM_SR_CC1IF;
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM1_COUNTERCOMPARE_1]))();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(TIM1->SR & TIM_SR_CC2IF) {
|
|
|
|
|
TIM1-> SR &= ~TIM_SR_CC2IF;
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM1_COUNTERCOMPARE_2]))();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(TIM1->SR & TIM_SR_CC3IF) {
|
|
|
|
|
TIM1-> SR &= ~TIM_SR_CC3IF;
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM1_COUNTERCOMPARE_3]))();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(TIM1->SR & TIM_SR_CC4IF) {
|
|
|
|
|
TIM1-> SR &= ~TIM_SR_CC4IF;
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM1_COUNTERCOMPARE_4]))();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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]))();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void TIM3_IRQHandler()
|
|
|
|
|
{
|
|
|
|
|
if(TIM3->SR & TIM_SR_UIF) {
|
|
|
|
|
// clear flag
|
|
|
|
|
TIM3-> SR &= ~TIM_SR_UIF;
|
|
|
|
|
|
|
|
|
|
//TODO: call handler here
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM3_UPDATE]))();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(TIM3->SR & TIM_SR_CC1IF) {
|
|
|
|
|
TIM3-> SR &= ~TIM_SR_CC1IF;
|
|
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM3_COUNTERCOMPARE_1]))();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(TIM3->SR & TIM_SR_CC2IF) {
|
|
|
|
|
TIM3-> SR &= ~TIM_SR_CC2IF;
|
|
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM3_COUNTERCOMPARE_2]))();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(TIM3->SR & TIM_SR_CC3IF) {
|
|
|
|
|
TIM3-> SR &= ~TIM_SR_CC3IF;
|
|
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM3_COUNTERCOMPARE_3]))();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(TIM3->SR & TIM_SR_CC4IF) {
|
|
|
|
|
TIM3-> SR &= ~TIM_SR_CC4IF;
|
|
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM3_COUNTERCOMPARE_4]))();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(TIM3->SR & TIM_SR_TIF) {
|
|
|
|
|
TIM3-> SR &= ~TIM_SR_TIF;
|
|
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM3_TRIGGER]))();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(TIM3->SR & TIM_SR_CC1OF) {
|
|
|
|
|
TIM3-> SR &= ~TIM_SR_CC1OF;
|
|
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM3_CAPTURECOMPARE_1]))();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(TIM3->SR & TIM_SR_CC2OF) {
|
|
|
|
|
TIM3-> SR &= ~TIM_SR_CC2OF;
|
|
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM3_CAPTURECOMPARE_2]))();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(TIM3->SR & TIM_SR_CC3OF) {
|
|
|
|
|
TIM3-> SR &= ~TIM_SR_CC3OF;
|
|
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM3_CAPTURECOMPARE_3]))();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(TIM3->SR & TIM_SR_CC4OF) {
|
|
|
|
|
TIM3-> SR &= ~TIM_SR_CC4OF;
|
|
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM3_CAPTURECOMAPRE_4]))();
|
|
|
|
|
}
|
|
|
|
|
}
|