中断嵌套学习一些心得

zhangjian1987   2012-5-24 21:48 楼主
中断嵌套,优先级
430总中断的控制位是状态寄存器内的GIE位(该位在SR寄存器内),该位在复位状态下,所有的可屏蔽中断都不会发生响应。可屏蔽中断又分为单中断源和多中断源的。单中断源的一般响应了中断服务程序中断标志位就自动清零,而多中断源的则要求查询某个寄存器后中断标志位才会清零。由于大多数人接触的第一款单片机通常是51,51单片机CPU在响应低优先级的中断程序过程中若有更高优先级的中断发生,单片机就会去执行高优先级,这个过程已经产生了中断嵌套。而430单片机则不同,如果在响应低优先级中断服务程序的时候,即使来了更高优先级的中断服务请求,430也会置之不理,直至低优先级中断服务程序执行完毕,才会去响应高优先级中断。这是因为430在响应中断程序的时候,总中断GIE是复位状态的,如果要产生类似51的中断嵌套,只能在中断函数内再次置位GIE位。

回复评论 (4)

欢迎分享
点赞  2012-5-28 23:28

个人感觉初次学习430的朋友,中断嵌套还是尽量少用。因为要用中断嵌套的话,就要在被嵌套的中断中打开GIE,而打开GIE,就意味着即使是最低优先级的中断也会进入被嵌套的中断中实现嵌套中断,可能导致你们想象不到的后果(430优先级和中断嵌套的特殊性)

楼主分享的很好呀

[ 本帖最后由 djky12 于 2012-5-29 20:50 编辑 ]
点赞  2012-5-29 20:48
感觉有点明白了
点赞  2012-6-30 08:42
学习了 ,谢谢!
点赞  2012-7-25 14:58
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复