发新帖我要提问
12
返回列表

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

[复制链接]
楼主: hanwe
手机看帖
扫描二维码
随时随地手机跟帖
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来了,能不能立即执行这一特定功能,关键在实时。

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

但是主程程序执行到 判断这 个标记 时间已经 很慢了,不是实时。

使用特权

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

本版积分规则