广告
淘宝内部优惠券
当前位置: 开发异常方案库» 硬件/嵌入开发 » 单片机中先清标志位及禁用本级中断的好处是什么?

单片机中先清标志位及禁用本级中断的好处是什么?

开发异常方案库  收集整理于:2020-05-08 15:16:00  浏览:66次
在INT1中断服务程序中,通常会先清标志位及禁用本级中断,在实验中IE1=0清标志位,EX1=0禁用INT1中断,这样做的好处是什么?

------网友观点--------------------
可以避免在处理中断过程中又来新中断,打乱处理过程。

------网友观点--------------------
清标志,允许本级中断再触发。 禁止中断,禁止中断进入中断程序。 在一些电平触发的中断或边沿触发的高速通讯中,进中断后有可能会再来中断。这时如果不做些处理再来的中断会打断当前中断,严重时会出现中断多级嵌套甚至会使系统崩溃。所以一般进中断后会禁止本级中断,中断返回前再允许。 清中断,如果不清,中断结束返回后,下次中断会进不了中断程序了。 在中断程序一开始,就进行禁止中断、清中断操作。保证当前中断不被本级中断打断。对高速通讯来说,先清中断,能保证在中断程序没结束时再来一次中断能记住、中断不丢,等本次中断结束后能及时再进中断。

------网友观点--------------------
引用 2 楼 qq_708907433 的回复:
清标志,允许本级中断再触发。 禁止中断,禁止中断进入中断程序。 在一些电平触发的中断或边沿触发的高速通讯中,进中断后有可能会再来中断。这时如果不做些处理再来的中断会打断当前中断,严重时会出现中断多级嵌套甚至会使系统崩溃。所以一般进中断后会禁止本级中断,中断返回前再允许。 清中断,如果不清,中断结束返回后,下次中断会进不了中断程序了。 在中断程序一开始,就进行禁止中断、清中断操作。保证当前中断不被本级中断打断。对高速通讯来说,先清中断,能保证在中断程序没结束时再来一次中断能记住、中断不丢,等本次中断结束后能及时再进中断。
    楼上正解。     1、进入中断后如果你不清标志,当你跑完程序然后退出中断,当系统过一会再次产生中断,CPU将不再触发该中断。     2、进入本次中断后,如果不禁止中断,此时如果又产生了其它一个类型的高优先级中断,会再次压栈,跳转到【高】优先级中断服务程序执行。依次类推,如果正在高优先中断服务程序中执行,此时又产生了一个最高优先级的中断,则会又压栈,跳转到【最高】优先级中断服务程序执行。             进一次中断就要压栈一次,如果单片机太小,堆栈区域划分的很少,如果进的次数多了,堆栈区域一会就会溢出,导致系统崩溃。
发布此文章仅为传递网友分享,不代表本站观点,若侵权请联系我们删除,本站将不对此承担任何责任。
软件开发 程序错误 异常 ybaby.netCopyright © 2020-2026  ybaby 版权所有  桂ICP备17004385号-2 网站地图