|
|
1
0
据我所知(可能是错误的),你不能“多线程”一个arduino(不知道任何微控制器支持这一点)。从本质上讲,微控制器的编码方式应该与计算机不同。您不能假设无限的资源和无限的线程。相反,这一切都是关于主循环速度以及如何分配资源。arduino示例(无延迟闪烁)是如何使用计时器完成此操作的示例。基本上,您将所有进程放在它们自己的计时器中,以便它们在每个计时器间隔执行一次,而在其他所有时间都被跳过。假设您的任何进程都不在主循环中,这将允许在每个进程之后进行上下文切换,因为程序将在主循环中循环,寻找下一个任务计时器。如果你把你所有的周期性进程都放在这样的计时器上,然后把你的串行可用性检查放在另一个(相当高的频率)计时器上,并在任何时候抓取串行,我相信它会给你你想要的结果。请记住,串行读写是一个相对缓慢的过程,因此在读写之后,您可能需要小心其他依赖于紧密频率调用的过程(例如,每次读取串行时,都需要重置麦克风以确定声音频率)。 --编辑 不管怎么说,我今天确实在做这件事,所以给你: *请注意,我不需要读取传入的序列号,所以将该位留给您来解决。(但显示了将在何处进行)
|
|
|
Jason A · 为什么c++对象中的这个私有变量没有更新?复制 2 年前 |
|
Robbert · 用程序求有限序列中的一个数 3 年前 |
|
|
Pertev · 使用for循环作为延迟的替代方案? 3 年前 |
|
|
Franta123456 · 如何将以前的值存储到数组中 8 年前 |