123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- #include "Std_Types.h"
- #include "nvic.h"
- #ifdef FEATURE_NVIC_PRIORITY_GROUPING
- void NVIC_SetPriorityGrouping(uint32 PriorityGroup)
- {
-
- S32_SCB->AIRCR = (S32_SCB->AIRCR & (~0x700UL)) | PriorityGroup;
- }
- #endif
-
- void NVIC_EnableIRQ(uint8 IRQn)
- {
- S32_NVIC->ISER[FEATURE_NVIC_REGISTER_INDEX(IRQn)] = (uint32)(1UL << ((uint32)(IRQn) & (uint32)0x1FU));
- }
-
- void NVIC_DisableIRQ(uint8 IRQn)
- {
- S32_NVIC->ICER[FEATURE_NVIC_REGISTER_INDEX(IRQn)] = (uint32)(1UL << ((uint32)(IRQn) & (uint32)0x1FU));
- }
-
-
-
- void NVIC_SetPriority(uint8 IRQn, uint8 priority)
- {
- uint8 shift = (uint8) (8U - FEATURE_NVIC_PRIO_BITS);
- #ifdef FEATURE_NVIC_CORTEX_M4
- S32_NVIC->IP[(uint32)(IRQn)] = (uint8)(((((uint32)priority) << shift)) & 0xFFUL);
- #else
- uint32 iprVectorId = (uint32)(IRQn) >> 2U;
- uint8 priByteShift = (uint8)((((uint8)IRQn) & 0x3U) << 3U);
- S32_NVIC->IP[iprVectorId] &= ~(3U << priByteShift);
- S32_NVIC->IP[iprVectorId] |= ((uint32)(((((uint32)priority) << shift)) & 0xFFUL)) << priByteShift;
- #endif
- }
-
-
-
|