中断服务子程序里为什么还在结尾加EINT

[复制链接]
 楼主| zhanghqi 发表于 2018-3-19 16:31 | 显示全部楼层 |阅读模式
中断服务子程序里为什么还在结尾加EINT
liliang9554 发表于 2018-3-19 16:46 | 显示全部楼层

对啊,全局中断不是在主函数中已开了吗?
liliang9554 发表于 2018-3-19 16:49 | 显示全部楼层

这与编译器对中断的处理有关,一般的RET不会对特殊寄存器做处理。
huangchui 发表于 2018-3-19 16:51 | 显示全部楼层
你说的是中断返回指令吧,有了这条命令,中断就可以返回到主程序的那个被中断的位置了继续执行了。
zhenykun 发表于 2018-3-19 17:00 | 显示全部楼层

可能是在中断的开始关闭了全局中断,然后结束的时候在打开。
zhenykun 发表于 2018-3-19 17:02 | 显示全部楼层

这样做的目的就是什么
yszong 发表于 2018-3-19 17:05 | 显示全部楼层
因为在中断函数中执行的程序过多,可能在执行的过程中,再次触发中断置位,从而影响正在执行的程序
wuhany 发表于 2018-3-19 17:08 | 显示全部楼层

嗯,所以在中断的开头先关闭中断,在中断函数结尾再加上EINT打开中断
shimx 发表于 2018-3-19 17:11 | 显示全部楼层

是啊,你看看程序是不是这个样子写的?
spark周 发表于 2018-3-19 17:13 | 显示全部楼层

CCS中中断函数中可以不写EINT的,一般来说进入中断时CCS自动帮你把中断关闭了,退出中断时会自动把中断打开,这些在C语言的时候都看不见的,你直接看汇编就能看到
zhaoxqi 发表于 2018-3-19 17:25 | 显示全部楼层

这个和编译器有关吧,不同的编译器可能就不需要
 楼主| zhanghqi 发表于 2018-3-19 17:29 | 显示全部楼层

其实还是不大明白,我再琢磨琢磨吧,多谢了哈,结贴了先
firstblood 发表于 2018-3-21 22:30 | 显示全部楼层
加这个有备无患的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

852

主题

11757

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部

852

主题

11757

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部