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