你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

请教中断和主函数的处理

[复制链接]
cl4y 提问时间:2017-4-12 09:01 /
希望当外部中断触发时,处理一系列函数,我看大家都说中断函数越短越好,需要处理的函数还是放到主函数里好。一般是在中断函数里放个标志位,置位时在主函数里检测,在主函数里执行相应的程序。
那么主函数是怎么检测这个标志位的呢?是在while(1)里用判断语句一直检测吗?
收藏 1 评论5 发布时间:2017-4-12 09:01

举报

5个回答
creep 回答时间:2017-4-12 09:17:28
有OS的话可以用个信号量什么的,裸奔就只能一直判断或者定时判断。
anobodykey 回答时间:2017-4-12 09:27:33
顶楼上,中断不频繁且裸奔的话你也可以隔断时间去查询标识
cl4y 回答时间:2017-5-10 09:03:00
creep 发表于 2017-4-12 09:17
有OS的话可以用个信号量什么的,裸奔就只能一直判断或者定时判断。

谢谢 看来裸奔只能这样了
cl4y 回答时间:2017-5-10 09:03:32
anobodykey 发表于 2017-4-12 09:27
顶楼上,中断不频繁且裸奔的话你也可以隔断时间去查询标识

好的 谢谢!
sssdd 回答时间:2017-5-10 13:19:05
本帖最后由 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不住了。
所以,主程序才是搞事的好地方。没有必要,别在中断里长篇大论。。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版