怎么让中断后不返回到中断前执行的代码?

2019-12-22 13:45发布

不修改返回的PC地址,如何让中断返回到其它函数?好像不修改PC地址实现不了?

我的问题实际就是,在主函数执行过程中,突发事件来了,突发就是串口中断接收到某数据,这时
我不能返回到原来的地址继续执行,想跳到另外一个处理函数A去,这个函数可以是空的,但要一直在
这个函数循环等待,等待只要串口再次接收到某数据,则可以退出A函数,继续执行主函数。

这个,没有操作系统。
但如果不上系统,能实现吗?
用上系统是不是好实现一些?

希望大家指点下!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
41条回答
huangqi412
1楼-- · 2019-12-26 21:52
估计是没有不方便分解的长任务
段胖子
2楼-- · 2019-12-27 01:11
居然有人提出中断里面死循环这种招数啊,无语啊
huangqi412
3楼-- · 2019-12-27 03:53
段胖子 发表于 2017-10-8 11:15
居然有人提出中断里面死循环这种招数啊,无语啊 ...

既然楼主提出收到串口会中止当前的事去死等另一个串口数据 顺着楼主的话用软中断去死等有什么奇怪 符合楼主要求就好  中断可嵌套  普通中断优先级高 不用的外设中断优先级低 用软件置位人为触发 比如不用的定时器外设 可以多个 不会影响正常中断只会卡死主程序 符合楼主说的
huangqi412
4楼-- · 2019-12-27 07:41
 精彩回答 2  元偷偷看……
段胖子
5楼-- · 2019-12-27 08:22
本帖最后由 段胖子 于 2017-10-8 15:35 编辑
huangqi412 发表于 2017-10-8 11:25
细节当然有超时 各种标志和逻辑等 对楼主的环境没觉得有毛病


楼上的误会了,我说的无语不是针对你的发言,我的意思是就像34、35楼的朋友提到的“中断内死循环不可行”,中断内死循环这个编程逻辑就有问题。另外很好奇楼主做的什么项目,需要这么奇怪的应用吗?串口2帧数据间隔应该不可能很短啊?即使程序在跑长程序,第2帧串口数据也会触发中断啊,难道楼主的长程序放到其他高优先级中断里了,不是很理解

一周热门 更多>