突然想到一个大家容易忽略的问题

2020-02-04 09:37发布

51单片机。。外部中断0和定时器0都开了中断。。现在单片机正在执行定时器0中断服务程序。。而此时还没有执行完就产生外部中断0。。那么外部中断0会不会中断定时器0的中断服务程序去执行自己的中断服务程序?会不会发生中断嵌套?? 如果会,在什么情况下会发生?不会,又是在什么情况下发生?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
usingavr
1楼-- · 2020-02-05 08:44
这个解释得比较清楚
http://blog.21ic.com/user1/5877/archives/2010/67165.html
taishandadi
2楼-- · 2020-02-05 14:43
 精彩回答 2  元偷偷看……
eblc1388
3楼-- · 2020-02-05 20:03
8051 有数个中断来源, 每一个来源都可以由用者设致成普通或优先级别。

相同级别的,不能中断相同级别进行中的服务程序。 优先级别可中断普通级别的服务程序。

所以楼主问题答案是, 由用者设定。
myqiang1990
4楼-- · 2020-02-05 20:29
借此引起不太注意的朋友们注意...呵呵..有时会出现这样的问题:外部中断0的自然优先级要比定时器0的自然优先级要高,如果当前正在执行定时器0中断服务,而此时又产生了一个外部中断0。按一般映像就是因为外部中断0比定时器0自然优先级高,所以定时器0的中断服务函数会被外部中断0打断,而且执行外部中断0的服务函数,其实有时并非如此!!要看优先级寄存器的设置。(51支持2级嵌套)

7楼朋友的链接详细说明了这个问题。。所以有时候出现摸不着头脑的问题应该是这种细节问题造成的。。。引起大家注意。。。

一周热门 更多>