打印

根据中断中的判断,直接跳转到对应的地方,如何实现?

[复制链接]
1283|28
手机看帖
扫描二维码
随时随地手机跟帖
楼主
zhanglli| | 2019-7-13 14:16 | 显示全部楼层 回帖奖励 |倒序浏览

LZ用汇编写过程序,就应该明白
当你进入中断服务程序时,单片机本身会备份当前程序状态,中断部分执行完毕后会用RETI恢复现场
如果这时候主程序是在执行一个子程序时进入的中断,那么中断执行完毕后自然会继续执行之前的子程序毫无影响,问题就在这...中断部分用LJMP之类跳转指令(相当于goto),自然是“合法”得跳转到目的地,但之前被执行到一半的子程序将会被彻底打断,程序架构一旦没处理好这部分,出问题也在所难免

使用特权

评论回复
沙发
zhanglli| | 2019-7-13 15:00 | 显示全部楼层

楼主其实最想问的是函数调度问题,那你也要分优先级啊。并且在函数中运行,你就设置一个忙的标志位,置这次的中断无效。

使用特权

评论回复
板凳
zhanglli| | 2019-7-13 15:23 | 显示全部楼层
如果中断处理函数太长,一般可设一标记,在主程序里进行处理。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则