请问中断和主函数的处理

2019-07-14 15:34发布

希望当外部中断触发时,处理一系列函数,我看大家都说中断函数越短越好,需要处理的函数还是放到主函数里好。一般是在中断函数里放个标志位,置位时在主函数里检测,在主函数里执行相应的程序。
那么主函数是怎么检测这个标志位的呢?是在while(1)里用判断语句一直检测吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
vywyefswer
1楼-- · 2019-07-14 20:35
 精彩回答 2  元偷偷看……
苏州光格
2楼-- · 2019-07-14 22:18
亲爱的娜娜 发表于 2018-12-3 12:01
有OS的话可以用个信号量什么的,裸奔就只能一直判断或者定时判断。

谢谢 看来裸奔只能这样了
苏州光格
3楼-- · 2019-07-14 23:19
vywyefswer 发表于 2018-12-3 12:06
顶楼上,中断不频繁且裸奔的话你也可以隔断时间去查询标识

好的 谢谢!
jfcidjq
4楼-- · 2019-07-15 00:49
本帖最后由 sssdd 于 2017-5-10 13:21 编辑

不懂什么叫裸奔。有个主定时就算操作系统了?那么咱们来个主定时和一打操作系统。
你可以在中断里主定时到时,比如1000us。设立标志位。比如flag=1;
while(1)里面get这个标志位,然后巴拉巴拉。。于是,你得到了一个受flag控制的分时系统。
一个时间片就是主定时周期。于是,你可以在里面再搞事。比如设置一个u16 work;
work==0,搞串口。work==1,搞采集。work==3,搞计算。。。。让work++;并且当work==n的时候从头再来。
我们就得到了一个分时响应work=n的“多任务操作系统”。。。。
挖槽,是不是好土??
再来高级一点的。。
n咱们来个动态的?
work不++了。咱们来个进程表怎么样?
进程表动态可变的劲爆不劲爆?
UI界面怎么办?为了面子不能丢,咱们的display一定要单独开特权。定时刷。嗯,进程表加个权。。
麻蛋work太多太多了。做不完啊。。抱歉,这个真没法子。
每个进程开内存管理。。。。
不行了。。再搞,这单片机真hold不住了。
所以,主程序才是搞事的好地方。没有必要,别在中断里长篇大论。。

一周热门 更多>