nRF52832 中斷相關

中斷號見《nrf52.h》 66行至117行,負數爲cortex-M4內核中斷(內部中斷),0與正數爲廠商自定義中斷(外部中斷)。
函數名見《iar_startup_nrf52.s》 78行至134行。

中斷等級0~7,有點少吧。
注意:SCB->VTOR定義中斷表位置(Vector Table Offset Register)。
默認搶佔中斷等級3位,0~7全是搶佔中斷。

中斷搶佔優先級和亞優先級,具體定義見宋巖譯《Cortex-M3 權威指南》,110頁,不做引用(M3與M4變化不大)。
__STATIC_INLINE void NVIC_SetPriorityGrouping(uint32_t PriorityGroup);
__STATIC_INLINE uint32_t NVIC_GetPriorityGrouping(void);

設置中斷優先級,外部內部中斷都可用(自動分辨正負號)。
__STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority);
__STATIC_INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn);

開掛中斷,注意以下只支持外部中斷。
__STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn);
__STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn);
是否掛起
__STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn);
軟件掛起
__STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn);
清除掛起
__STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn);
是否激活
__STATIC_INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn);

軟件重啓
__STATIC_INLINE void NVIC_SystemReset(void)

設置系統時鐘
__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
注意:系統時鐘中斷等級7,最低。(7是最低嗎?我記錯了?)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章