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

2020-02-04 09:37发布

51单片机。。外部中断0和定时器0都开了中断。。现在单片机正在执行定时器0中断服务程序。。而此时还没有执行完就产生外部中断0。。那么外部中断0会不会中断定时器0的中断服务程序去执行自己的中断服务程序?会不会发生中断嵌套?? 如果会,在什么情况下会发生?不会,又是在什么情况下发生?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
myqiang1990
2020-02-05 20:29
借此引起不太注意的朋友们注意...呵呵..有时会出现这样的问题:外部中断0的自然优先级要比定时器0的自然优先级要高,如果当前正在执行定时器0中断服务,而此时又产生了一个外部中断0。按一般映像就是因为外部中断0比定时器0自然优先级高,所以定时器0的中断服务函数会被外部中断0打断,而且执行外部中断0的服务函数,其实有时并非如此!!要看优先级寄存器的设置。(51支持2级嵌套)

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

一周热门 更多>