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