關(guān)于PIC24的DISI禁止中斷指令
這條指令可以把1-6優(yōu)先級中斷禁止一個(gè)固定的時(shí)間,用于一些對時(shí)間特性要求嚴格的代碼段執行前關(guān)閉中斷.
禁止中斷指令最大可以禁止中斷時(shí)間為16384 個(gè)指令周期.
這條指令的執行的時(shí)候,1-6級別中斷立即被禁止,同時(shí)把DISICNT寄存器賦值為16384,DISICNT寄存器賦按每個(gè)指令周期遞減,當DISICNT為0的時(shí)候,中斷禁止結束.
在DISI指令禁止中斷期間,用戶(hù)可以寫(xiě)DISICNT延長(cháng)或者縮短中斷禁止時(shí)間,或者直接對DISICNT寫(xiě)0,立即結束中斷禁止.
注意:
在DISI未執行的時(shí)候,直接寫(xiě)DISICNT為非0數值無(wú)效,不能禁止中斷.
要中斷禁止生效必須先執行DISICNT指令
如果要一直禁止中斷,可以用如下方法:
1. 使用PUSH 指令將當前的SR 值壓入軟件堆棧。
2. 通過(guò)將值0xE0 與SRL 進(jìn)行“或”運算而將CPU 優(yōu)先級強制設置為7。
評論