打印
[PIC®/AVR®/dsPIC®产品]

如果在进入中断前提前清楚标志位,是否进入中断

[复制链接]
2063|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
如果在进入一个中断比如INT外部中断前,此时在别的中断里比如T1定时器,在执行T1中断的过程中发生了INT中断,但是我在T1中断里把INT中断清楚了,请问是否会进入INT中断?
沙发
yirongfu| | 2016-4-26 01:16 | 只看该作者
好像不会吧。
以单个中断的情况为例,除非有硬件自动清除中断标志,否则一般都需要软件清,不然会反复进中断,也就是说中断标志位是进入中断的一个“信号灯”。
楼主所说的情况跟这个一样的道理。当然还需要考虑优先级和中断嵌套,如果允许嵌套且优先级高,有可能都来不及清标志位就已经进那个中断服务了。

使用特权

评论回复
板凳
suicune66|  楼主 | 2016-4-26 08:01 | 只看该作者
yirongfu 发表于 2016-4-26 01:16
好像不会吧。
以单个中断的情况为例,除非有硬件自动清除中断标志,否则一般都需要软件清,不然会反复进中 ...

如果不选择嵌套的话,在一个中断里面发生了另一个,然后我把它标志位清楚了,是不是就不进去了?

使用特权

评论回复
地板
candysnape| | 2016-4-26 09:01 | 只看该作者
suicune66 发表于 2016-4-26 08:01
如果不选择嵌套的话,在一个中断里面发生了另一个,然后我把它标志位清楚了,是不是就不进去了? ...

如果已经进入A中断,在A中断程序中不开启中断,然后清除另一个B中断的中断标志,退出A中断后,不会进入B中断。

使用特权

评论回复
5
suicune66|  楼主 | 2016-4-26 11:27 | 只看该作者
candysnape 发表于 2016-4-26 09:01
如果已经进入A中断,在A中断程序中不开启中断,然后清除另一个B中断的中断标志,退出A中断后,不会进入B ...

在A中断程序中不开启中断,这个不开启什么中断?是把B的中断允许位在A中断里关闭么?

使用特权

评论回复
6
candysnape| | 2016-4-26 12:33 | 只看该作者
默认A中断里面是自动关闭全局可屏蔽中断的,如果要嵌套中断(中断中进另一个中断),需要手动把可屏蔽中断打开

使用特权

评论回复
7
yirongfu| | 2016-4-27 12:15 | 只看该作者
楼主你说的情况自己动手试一下最有说服力,我没这么用过,只是推测。再附上数据手册的截图供参考,从红框中的描述,我个人理解清了中断标志位就不会再进中断服务了。


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

109

帖子

2

粉丝