|
|
@ -259,239 +259,61 @@ void timerThrowError(timerError_t error)
|
|
|
|
void TIM1_BRK_UP_TRG_COM_IRQHandler()
|
|
|
|
void TIM1_BRK_UP_TRG_COM_IRQHandler()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
HANDLE_INT_FLAG(TIM1->SR,TIM_SR_BIF,TIM1_BREAK);
|
|
|
|
HANDLE_INT_FLAG(TIM1->SR,TIM_SR_BIF,TIM1_BREAK);
|
|
|
|
/*
|
|
|
|
HANDLE_INT_FLAG(TIM1->SR,TIM_SR_BIF,TIM1_UPDATE);
|
|
|
|
if(TIM1->SR & TIM_SR_BIF) {
|
|
|
|
HANDLE_INT_FLAG(TIM1->SR,TIM_SR_BIF,TIM1_TRIGGER);
|
|
|
|
TIM1->SR &= ~TIM_SR_BIF;
|
|
|
|
HANDLE_INT_FLAG(TIM1->SR,TIM_SR_BIF,TIM1_COMMUNICATION);
|
|
|
|
((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_IRQHandler()
|
|
|
|
void TIM1_CC_IRQHandler()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if(TIM1->SR & TIM_SR_CC1IF) {
|
|
|
|
HANDLE_INT_FLAG(TIM1->SR,TIM_SR_CC1IF,TIM1_COUNTERCOMPARE_1);
|
|
|
|
TIM1-> SR &= ~TIM_SR_CC1IF;
|
|
|
|
HANDLE_INT_FLAG(TIM1->SR,TIM_SR_CC2IF,TIM1_COUNTERCOMPARE_2);
|
|
|
|
((intHandler_t)(intHandlerList[TIM1_COUNTERCOMPARE_1]))();
|
|
|
|
HANDLE_INT_FLAG(TIM1->SR,TIM_SR_CC3IF,TIM1_COUNTERCOMPARE_3);
|
|
|
|
}
|
|
|
|
HANDLE_INT_FLAG(TIM1->SR,TIM_SR_CC4IF,TIM1_COUNTERCOMPARE_4);
|
|
|
|
|
|
|
|
|
|
|
|
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()
|
|
|
|
void TIM2_IRQHandler()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if(TIM2->SR & TIM_SR_UIF) {
|
|
|
|
HANDLE_INT_FLAG(TIM2->SR,TIM_SR_UIF,TIM2_UPDATE);
|
|
|
|
TIM2-> SR &= ~TIM_SR_UIF;
|
|
|
|
HANDLE_INT_FLAG(TIM2->SR,TIM_SR_CC1IF,TIM2_COUNTERCOMPARE_1);
|
|
|
|
((intHandler_t)(intHandlerList[TIM2_UPDATE]))();
|
|
|
|
HANDLE_INT_FLAG(TIM2->SR,TIM_SR_CC2IF,TIM2_COUNTERCOMPARE_2);
|
|
|
|
}
|
|
|
|
HANDLE_INT_FLAG(TIM2->SR,TIM_SR_CC3IF,TIM2_COUNTERCOMPARE_3);
|
|
|
|
|
|
|
|
HANDLE_INT_FLAG(TIM2->SR,TIM_SR_CC4IF,TIM2_COUNTERCOMPARE_4);
|
|
|
|
if(TIM2->SR & TIM_SR_CC1IF) {
|
|
|
|
HANDLE_INT_FLAG(TIM2->SR,TIM_SR_TIF,TIM2_TRIGGER);
|
|
|
|
TIM2-> SR &= ~TIM_SR_CC1IF;
|
|
|
|
HANDLE_INT_FLAG(TIM2->SR,TIM_SR_CC1OF,TIM2_CAPTURECOMPARE_1);
|
|
|
|
((intHandler_t)(intHandlerList[TIM2_COUNTERCOMPARE_1]))();
|
|
|
|
HANDLE_INT_FLAG(TIM2->SR,TIM_SR_CC2OF,TIM2_CAPTURECOMPARE_2);
|
|
|
|
}
|
|
|
|
HANDLE_INT_FLAG(TIM2->SR,TIM_SR_CC3OF,TIM2_CAPTURECOMPARE_3);
|
|
|
|
|
|
|
|
HANDLE_INT_FLAG(TIM2->SR,TIM_SR_CC4OF,TIM2_CAPTURECOMAPRE_4);
|
|
|
|
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()
|
|
|
|
void TIM3_IRQHandler()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if(TIM3->SR & TIM_SR_UIF) {
|
|
|
|
HANDLE_INT_FLAG(TIM3->SR,TIM_SR_UIF,TIM3_UPDATE);
|
|
|
|
// clear flag
|
|
|
|
HANDLE_INT_FLAG(TIM3->SR,TIM_SR_CC1IF,TIM3_COUNTERCOMPARE_1);
|
|
|
|
TIM3-> SR &= ~TIM_SR_UIF;
|
|
|
|
HANDLE_INT_FLAG(TIM3->SR,TIM_SR_CC2IF,TIM3_COUNTERCOMPARE_2);
|
|
|
|
|
|
|
|
HANDLE_INT_FLAG(TIM3->SR,TIM_SR_CC3IF,TIM3_COUNTERCOMPARE_3);
|
|
|
|
//TODO: call handler here
|
|
|
|
HANDLE_INT_FLAG(TIM3->SR,TIM_SR_CC4IF,TIM3_COUNTERCOMPARE_4);
|
|
|
|
((intHandler_t)(intHandlerList[TIM3_UPDATE]))();
|
|
|
|
HANDLE_INT_FLAG(TIM3->SR,TIM_SR_TIF,TIM3_TRIGGER);
|
|
|
|
}
|
|
|
|
HANDLE_INT_FLAG(TIM3->SR,TIM_SR_CC1OF,TIM3_CAPTURECOMPARE_1);
|
|
|
|
|
|
|
|
HANDLE_INT_FLAG(TIM3->SR,TIM_SR_CC2OF,TIM3_CAPTURECOMPARE_2);
|
|
|
|
if(TIM3->SR & TIM_SR_CC1IF) {
|
|
|
|
HANDLE_INT_FLAG(TIM3->SR,TIM_SR_CC3OF,TIM3_CAPTURECOMPARE_3);
|
|
|
|
TIM3-> SR &= ~TIM_SR_CC1IF;
|
|
|
|
HANDLE_INT_FLAG(TIM3->SR,TIM_SR_CC4OF,TIM3_CAPTURECOMAPRE_4);
|
|
|
|
|
|
|
|
|
|
|
|
((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]))();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void TIM14_IRQHandler()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if(TIM14->SR & TIM_SR_CC1OF) {
|
|
|
|
|
|
|
|
TIM14-> SR &= ~TIM_SR_CC1OF;
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM14_CAPTURECOMPARE_1_OVERCAPTURE]))();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(TIM14->SR & TIM_SR_CC1IF) {
|
|
|
|
|
|
|
|
TIM14-> SR &= ~TIM_SR_CC1IF;
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM14_CAPTURECOMPARE_1]))();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(TIM14->SR & TIM_SR_UIF) {
|
|
|
|
|
|
|
|
TIM14-> SR &= ~TIM_SR_UIF;
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM14_UPDATE]))();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void TIM16_IRQHandler()
|
|
|
|
void TIM16_IRQHandler()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if(TIM16->SR & TIM_SR_CC1OF) {
|
|
|
|
HANDLE_INT_FLAG(TIM16->SR,TIM_SR_CC1OF,TIM16_CAPTURECOMPARE_1_OVERCAPTURE);
|
|
|
|
TIM16-> SR &= ~TIM_SR_CC1OF;
|
|
|
|
HANDLE_INT_FLAG(TIM16->SR,TIM_SR_BIF,TIM16_BREAK);
|
|
|
|
((intHandler_t)(intHandlerList[TIM16_CAPTURECOMPARE_1_OVERCAPTURE]))();
|
|
|
|
HANDLE_INT_FLAG(TIM16->SR,TIM_SR_COMIF,TIM16_COMMUNICATION);
|
|
|
|
}
|
|
|
|
HANDLE_INT_FLAG(TIM16->SR,TIM_SR_CC1IF,TIM16_CAPTURECOMPARE_1);
|
|
|
|
|
|
|
|
HANDLE_INT_FLAG(TIM16->SR,TIM_SR_UIF,TIM16_UPDATE);
|
|
|
|
if(TIM16->SR & TIM_SR_BIF) {
|
|
|
|
|
|
|
|
TIM16-> SR &= ~TIM_SR_BIF;
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM16_BREAK]))();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(TIM16->SR & TIM_SR_COMIF) {
|
|
|
|
|
|
|
|
TIM16-> SR &= ~TIM_SR_COMIF;
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM16_COMMUNICATION]))();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(TIM16->SR & TIM_SR_CC1IF) {
|
|
|
|
|
|
|
|
TIM16-> SR &= ~TIM_SR_CC1IF;
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM16_CAPTURECOMPARE_1]))();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(TIM16->SR & TIM_SR_UIF) {
|
|
|
|
|
|
|
|
TIM16-> SR &= ~TIM_SR_UIF;
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM16_UPDATE]))();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void TIM117_IRQHandler()
|
|
|
|
void TIM117_IRQHandler()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if(TIM17->SR & TIM_SR_CC1OF) {
|
|
|
|
HANDLE_INT_FLAG(TIM17->SR,TIM_SR_CC1OF,TIM17_CAPTURECOMPARE_1_OVERCAPTURE);
|
|
|
|
TIM17-> SR &= ~TIM_SR_CC1OF;
|
|
|
|
HANDLE_INT_FLAG(TIM17->SR,TIM_SR_BIF,TIM17_BREAK);
|
|
|
|
((intHandler_t)(intHandlerList[TIM17_CAPTURECOMPARE_1_OVERCAPTURE]))();
|
|
|
|
HANDLE_INT_FLAG(TIM17->SR,TIM_SR_COMIF,TIM17_COMMUNICATION);
|
|
|
|
}
|
|
|
|
HANDLE_INT_FLAG(TIM17->SR,TIM_SR_CC1IF,TIM17_CAPTURECOMPARE_1);
|
|
|
|
|
|
|
|
HANDLE_INT_FLAG(TIM17->SR,TIM_SR_UIF,TIM17_UPDATE);
|
|
|
|
if(TIM17->SR & TIM_SR_BIF) {
|
|
|
|
|
|
|
|
TIM17-> SR &= ~TIM_SR_BIF;
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM17_BREAK]))();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(TIM17->SR & TIM_SR_COMIF) {
|
|
|
|
|
|
|
|
TIM17-> SR &= ~TIM_SR_COMIF;
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM17_COMMUNICATION]))();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(TIM17->SR & TIM_SR_CC1IF) {
|
|
|
|
|
|
|
|
TIM17-> SR &= ~TIM_SR_CC1IF;
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM17_CAPTURECOMPARE_1]))();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(TIM17->SR & TIM_SR_UIF) {
|
|
|
|
|
|
|
|
TIM17-> SR &= ~TIM_SR_UIF;
|
|
|
|
|
|
|
|
((intHandler_t)(intHandlerList[TIM17_UPDATE]))();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|