完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
有没有人能够实现协作式多任务处理?除了破解 cont_run 和 cont_init 之外,我尝试过的任何事情似乎都奏效了。我想要像https://github.com/mikaelpatel/Arduino-Scheduler这样的行为——有什么想法吗?我因为问这个问题而被 arduino.stackexchange.com 淘汰,所以我现在感觉自己像个真正的反叛者 =)
,它通过示例讨论了 Arduino 环境中的 eSP8266 以及简单的抢占/合作示例。我对示例实现不是很满意,但这是一个开始。 我怀疑有人可以基于状态机和 ms 计时器推出自己的方法。过于花哨的主要问题是必须经常让出,这样当前实现的“多任务”Arduino-on-ESP8266 才能为二进制文件的 RF 部分提供服务;这意味着使用 delay(0) 或 yield() 或确保 loop() 函数完成时间不超过大约 20mS --50mS 最大值。 所以,如果你设置你的任务是这样的: 代码:全选void loop() { task1(); task2(); task3(); } ... 并且您分析了所有三个任务(即处理 loop() 的总时间并且它花费的时间少于 20mS,没有什么可担心的。循环的顶部将自动调用 yield() 。...或者,如果您分析所有三个任务并且时间 > 20 毫秒,您可以在两个任务之间放置一个 yield();或者简单地在 task1 之后放置一个 yield(),在 task2 之后记住隐含的 yield() 之后task3(循环结束==循环顶部计时。) 所以,像上面那样思考,你有以下内容: 代码:全选void loop() { task1(); yield(); task2(); yield(); task3(); // yield() // implied } 为了超级安全,分析每个 taskx 并确保没有一个超过 50mS 最大值! |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
1108 浏览 1 评论
574浏览 6评论
477浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
460浏览 5评论
461浏览 4评论
435浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 17:43 , Processed in 1.108682 second(s), Total 74, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号