搜索
bottom↓
回复: 9

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

[复制链接]

出0入0汤圆

发表于 2012-2-23 11:32:37 | 显示全部楼层 |阅读模式
51单片机。。外部中断0和定时器0都开了中断。。现在单片机正在执行定时器0中断服务程序。。而此时还没有执行完就产生外部中断0。。那么外部中断0会不会中断定时器0的中断服务程序去执行自己的中断服务程序?会不会发生中断嵌套?? 如果会,在什么情况下会发生?不会,又是在什么情况下发生?

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2012-2-23 11:45:35 | 显示全部楼层
你可以写个程序跑跑看就知道了

出0入0汤圆

发表于 2012-2-23 11:50:51 | 显示全部楼层
教程书上说的已经很清楚,再实验验证一下就明白了

出0入0汤圆

 楼主| 发表于 2012-2-23 12:22:16 | 显示全部楼层
回复【3楼】superAFE  
-----------------------------------------------------------------------
我看有谁能够准确的回答这个问题。。。你这个是不对的。。。很多人包括我以前就是像你这样想的。。认为外部中断0比定时器0的自然优先级高,所以定时器0中断服务函数就会被打断。。发生中断嵌套。。

出0入0汤圆

发表于 2012-2-23 12:25:23 | 显示全部楼层
看看中断优先顺序吧

出0入0汤圆

发表于 2012-2-23 12:28:16 | 显示全部楼层
中断优先级。。。是对同时产生的中断处理的优先程度

一个中断是否会中断当前中断中执行的程序,并不由优先级决定。

但一般来说,优先级高的会中断优先级低的程序,就是所谓的中断嵌套。


关键还是看低优先级的中断是否为可以屏蔽其他中断的。

出0入0汤圆

发表于 2012-2-23 12:31:41 | 显示全部楼层
这个解释得比较清楚
http://blog.21ic.com/user1/5877/archives/2010/67165.html

出75入4汤圆

发表于 2012-2-23 12:53:50 | 显示全部楼层
1、中断优先级高低2、是否允许响应中断

出0入0汤圆

发表于 2012-2-23 12:53:52 | 显示全部楼层
8051 有数个中断来源, 每一个来源都可以由用者设致成普通或优先级别。

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

所以楼主问题答案是, 由用者设定。

出0入0汤圆

 楼主| 发表于 2012-2-23 13:49:30 | 显示全部楼层
借此引起不太注意的朋友们注意...呵呵..有时会出现这样的问题:外部中断0的自然优先级要比定时器0的自然优先级要高,如果当前正在执行定时器0中断服务,而此时又产生了一个外部中断0。按一般映像就是因为外部中断0比定时器0自然优先级高,所以定时器0的中断服务函数会被外部中断0打断,而且执行外部中断0的服务函数,其实有时并非如此!!要看优先级寄存器的设置。(51支持2级嵌套)

7楼朋友的链接详细说明了这个问题。。所以有时候出现摸不着头脑的问题应该是这种细节问题造成的。。。引起大家注意。。。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 04:14

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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