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

请教中断和主函数的处理

[复制链接]
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扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版