#include "interrupt.h" #include "hwd_interrupt.h" #include "pin.h" /** * @brief Default Handler * * This handler is called when no interrupt handler was set */ static void defaultHandler(){}; volatile void (*intHandlerArray[intTypeEND])() = {NULL}; const uint8_t interruptTypeIndexList[intTypeEND] = { TIM1_BRK_UP_TRG_COM_IRQn, TIM1_BRK_UP_TRG_COM_IRQn, TIM1_BRK_UP_TRG_COM_IRQn, TIM1_BRK_UP_TRG_COM_IRQn, TIM1_CC_IRQn, TIM1_CC_IRQn, TIM1_CC_IRQn, TIM1_CC_IRQn, TIM2_IRQn, TIM2_IRQn, TIM2_IRQn, TIM2_IRQn, TIM2_IRQn, TIM2_IRQn, TIM2_IRQn, TIM2_IRQn, TIM2_IRQn, TIM2_IRQn, TIM3_IRQn, TIM3_IRQn, TIM3_IRQn, TIM3_IRQn, TIM3_IRQn, TIM3_IRQn, TIM3_IRQn, TIM3_IRQn, TIM3_IRQn, TIM3_IRQn, TIM14_IRQn, TIM14_IRQn, TIM14_IRQn, TIM16_IRQn, TIM16_IRQn, TIM16_IRQn, TIM16_IRQn, TIM16_IRQn, TIM17_IRQn, TIM17_IRQn, TIM17_IRQn, TIM17_IRQn, TIM17_IRQn }; void intInit( intrType_t intType, intHandler_t handler, uint8_t priority) { NVIC_SetPriority(interruptTypeIndexList[intType], priority); // check if index is correct if(intType >= intTypeEND) return; //intHandlerList[intType] = handler; intHandlerArray[intType] = handler; } void intEnableAll() { __enable_irq(); } void intDissableAll() { __disable_irq(); } void intEnable( intrType_t intType) { NVIC_EnableIRQ(interruptTypeIndexList[intType]); } void intDissable( intrType_t intType) { NVIC_DisableIRQ(interruptTypeIndexList[intType]); }