找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1127|回复: 1
收起左侧

关于单片机的中断嵌套执行的问题

[复制链接]
ID:123289 发表于 2022-8-22 17:05 | 显示全部楼层
本帖最后由 yzwzfyz 于 2022-8-23 08:23 编辑

有头脑,善于思考问题。汝子可教也!
1、中断是不是响应,取决于中断源自己的标记:F。(其它的中断允许、屏蔽不在此讨论,并假设中断源标记是 F)。
对于 F的清除有两种方式(具体看手册):
其一、响应后CPU硬件自动清除。其二响应后需人工清除。
2、在你进入中断程序后(已响应),就不会再响应本源的中断。假如你已清除了F,而这时中断源又动作了,它只能将F置1,无法做任何事,中断N次,也只是将F置1而矣,一次与N次都一样。
3、当你退出中断服务程序后(以RETI为标志),CPU硬件会再次识别F是否为1。是1则再次响应。CPU并不识别中断源动作了多少次,而只识别F是否为1。
4、在你进入中断程序后(已响应),中断源又动作了N次,它只能将F置1,而你在退出中断之前,又做了一个【缺德】的事,清F清0了!这时,你再退出中断服务程序后。程序不会再进入中断,因为CPU看不见F了。

CPU响应中断有以下条件:
1、本源F标记=1。
2、中断被允许。
3、无更高级或同级中断已被响应。
4、当前指令已执行结束(当前指令未执行完不响应)。
5、RETI 的一条指令已被执行(看手册,是否有这一条。一些单片机需要RETI后再执行1-2条指令才能识别到F)。

总结:
1、中断源动作只能使 F=1,并不能让CPU立即响应中断。
2、中断源动作N次,在未被CPU响应之前,只有最后一个起作用,CPU不识别动作次数。
3、中断源动作N次,而中断已被CPU响应,是否再次被响应,取决于本次中断服务程序退出时,F是否为1。当然如果有更高级的中断发生,即使未退出,也被抢了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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