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

[复制链接]
zhanglli 发表于 2018-5-4 16:28 | 显示全部楼层
如果中断处理函数太长,一般可设一标记,在主程序里进行处理。
yufe 发表于 2018-5-4 16:34 | 显示全部楼层
做设计  要把复杂问题简单化  而不能把简单问题复杂化
LZ提到的问题  采用分时处理即可  
在没有OS的情况下 可以使用消息事件模型来作为程序的框架
 楼主| hanwe 发表于 2018-5-4 16:41 | 显示全部楼层
void program1(){...}
void program2(){...}
main()
{
...
program1();
...
program2();
...
}
ISR()
{
if(A) program1();
if(b)program2();
}
llia 发表于 2018-5-4 16:44 | 显示全部楼层

CALL 你需要的GOTO就行了
wangpe 发表于 2018-5-4 16:50 | 显示全部楼层
中断里只设置标志位。main里来个while,里边查询标志位
langgq 发表于 2018-5-4 16:57 | 显示全部楼层
根据标志位分别执行F1和F2,记得在执行F1、F2的末尾将标志位再置回没有中断的状态。
wangzsa 发表于 2018-5-4 17:05 | 显示全部楼层
直接在中断里设置标志位,然后在主循环里根据标志位执行程序。
 楼主| hanwe 发表于 2018-5-4 17:08 | 显示全部楼层
嗯,我再好好缕一缕吧,有了好消息及时通知大家,结贴喽
li880wert 发表于 2018-5-5 10:28 | 显示全部楼层
一群人都没看懂楼主的问题,回答的方向不对。

楼主是说,如果中断ISR来了,能不能立即执行这一特定功能,关键在实时。

你们回答的 都是说在中断中设置标记,然后在主程序中运行。

但是主程程序执行到 判断这 个标记 时间已经 很慢了,不是实时。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
快速回复 在线客服 返回列表 返回顶部