找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2429|回复: 2
打印 上一主题 下一主题
收起左侧

单片机如果有两个中断服务使代码重叠,这两个都有用,该怎么解决。

[复制链接]
跳转到指定楼层
楼主
ID:263267 发表于 2017-12-24 12:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
8黑币
在51单片机里面如果有两个中断服务使代码重叠,这两个都有用,该怎么解决。我用的是ST89C52

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:164602 发表于 2017-12-24 19:45 | 只看该作者
中断的执行过程,大概是这样的:(假设中断1,中断2,且中断1优先级高)
1、中断1发生中断了,执行这个中断服务程序。
2、在中断1执行服务程序期间,中断2发生了,由于它的优先级低,所以等待。
3、中断1服务程序执行完毕,返回中断点,再去执行中断2的服务程序。看到没,两个中断服务程序都执行了的。
4、在中断2服务程序执行期间,中断1又发生了,由于它的优先级高,所以立即去执行中断1的服务程序,即中断2的服务程序被打断了。
5、当中断1的服务程序执行完毕,回到中断2的服务程序刚才打断的点,继续执行中断2的服务程序。看到没,两个中断服务程序还是执行了的。
6、中断2服务程序执行完毕,回到主程序刚才中断2打断的位置处,继续执行主程序。
不论两个中断服务程序是不是有代码重复,单片机CPU会自动认为是两个函数,自动会按照一定的规则去执行它们,你是不需要担心的。
当然,这种中断嵌套,也是有麻烦的。套得太深(多次打断中断服务程序),有可能出现不可预料的结果。所以,通常不是很紧要的操作,都不设置优先级。我只在给新手演示中断可以嵌套这个时候用过优先级,在实际应用中,只在智能小车用按键调速、选择功能时,让按键的外部中断优先级高于用于PWM波的定时器中断优先级。

回复

使用道具 举报

板凳
ID:151348 发表于 2017-12-24 22:05 | 只看该作者
说说中断里要做什么事情
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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