找回密码
 注册
关于网站域名变更的通知
查看: 314|回复: 1
打印 上一主题 下一主题

关于PIC24的DISI禁止中断指令

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-3-8 10:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
关于PIC24的DISI禁止中断指令
3 O1 @' M+ m) ]. |/ {; Q3 O9 N4 B* C/ B2 a" J

/ |3 G: k4 @- M7 i3 B- K6 [

PIC24的DISI指令是禁止中断指令,

这条指令可以把1-6优先级中断禁止一个固定的时间,用于一些对时间特性要求严格的代码段执行前关闭中断.

禁止中断指令最大可以禁止中断时间为16384 个指令周期.

这条指令的执行的时候,1-6级别中断立即被禁止,同时把DISICNT寄存器赋值为16384,DISICNT寄存器赋按每个指令周期递减,当DISICNT为0的时候,中断禁止结束.

在DISI指令禁止中断期间,用户可以写DISICNT延长或者缩短中断禁止时间,或者直接对DISICNT写0,立即结束中断禁止.

注意:

在DISI未执行的时候,直接写DISICNT为非0数值无效,不能禁止中断.

要中断禁止生效必须先执行DISICNT指令

如果要一直禁止中断,可以用如下方法:

1. 使用PUSH 指令将当前的SR 值压入软件堆栈。

2. 通过将值0xE0 与SRL 进行“或”运算而将CPU 优先级强制设置为7。

; A" F' v" |3 U9 f$ a! L( b

该用户从未签到

2#
发表于 2019-3-8 23:18 | 只看该作者
O(∩_∩)O哈哈~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-19 06:58 , Processed in 0.078125 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表