CH579中斷優(yōu)先級(jí)怎么設(shè)置?

CH579文檔有說(shuō)中斷優(yōu)先級(jí)可設(shè)置,但卻沒有相關(guān)寄存器說(shuō)明。

例程中有關(guān)于中斷優(yōu)先級(jí)函數(shù),但也沒有相關(guān)設(shè)置說(shuō)明,有多少個(gè)等級(jí),以及嵌套中斷等信息。


/** \brief? Set Interrupt Priority


? ? The function sets the priority of an interrupt.


? ? \note The priority cannot be set for every core interrupt.


? ? \param [in]? ? ? IRQn? Interrupt number.

? ? \param [in]? priority? Priority to set.

?*/

__STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)

{

? if(IRQn < 0) {

? ? SCB->SHP[_SHP_IDX(IRQn)] = (SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFF << _BIT_SHIFT(IRQn))) |

? ? ? ? (((priority << (8 - __NVIC_PRIO_BITS)) & 0xFF) << _BIT_SHIFT(IRQn)); }

? else {

? ? NVIC->IP[_IP_IDX(IRQn)] = (NVIC->IP[_IP_IDX(IRQn)] & ~(0xFF << _BIT_SHIFT(IRQn))) |

? ? ? ? (((priority << (8 - __NVIC_PRIO_BITS)) & 0xFF) << _BIT_SHIFT(IRQn)); }

}


關(guān)于priority值的定義沒有注釋。


你好我們579的手冊(cè)對(duì)優(yōu)先級(jí)是有確切的說(shuō)明的

emobile_2022-12-12_16-21-13.pngCortex-M0處理器的任何中斷都有一個(gè)固定或者可編程的中斷優(yōu)先級(jí)。當(dāng)外部中斷之類的異常發(fā)生時(shí),NVIC將該異常的優(yōu)先級(jí)與當(dāng)前的優(yōu)先級(jí)進(jìn)行比較,如果新的優(yōu)先級(jí)更高,當(dāng)前的任務(wù)會(huì)被暫定,一些寄存器的值被壓棧處理,然后處理器開始處理新的異常程序,這個(gè)過程也被稱為“搶占”。高優(yōu)先級(jí)的中斷完成后,異常返回就會(huì)執(zhí)行,處理器自動(dòng)進(jìn)行出棧操作恢復(fù)剛才寄存器的值,并繼續(xù)運(yùn)行剛才的任務(wù)。


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频