27073浏览
查看: 27073|回复: 12

[入门] Arduino多线程库

[复制链接]
本帖最后由 o熊小猫o 于 2015-4-2 16:09 编辑

废话少说,直接进正题。简单的写一下用法第一:
  1. #include "SCoop.h"
复制代码
这个不需要解释了吧。。

第二:
  1. void setup() {
  2. mySCoop.start();
  3. }
复制代码

第三
  1. void loop() {
  2. yield();
  3. }
复制代码

接下来就可以使用多线程了。请继续往下看:定义一个名字为“TaskTest”的线程

  1. defineTask(TaskTest);
  2. void TaskTest::setup()
  3. {
  4. //这里是setup
  5. }
  6. void TaskTest::loop()
  7. {
  8. //这是是loop的内容
  9. }
复制代码
还没完,如果这个线程中执行的动作不需要setup的话,还可以使用defineTaskLoop快速定义的方式,如下:
  1. defineTaskLoop(TaskTest1)
  2. {
  3. //我是一段小代码呀,咿呀咿呀哟
  4. }
复制代码
注意一点,使用此库之后,请使用sleep(ms)作为延时。因为sleep(ms)只针对当前线程。而delay(ms)是针对全局的。
最后来一个完成的演示吧,2个LED分别以100毫秒和1秒的速度闪烁。12和13引脚分别接LED,然后运行代码看看效果吧。
  1. #include "SCoop.h"
  2. defineTask(TaskTest);
  3. void TaskTest::setup()
  4. {
  5.         pinMode(13, OUTPUT);
  6. }
  7. void TaskTest::loop()
  8. {
  9.   digitalWrite(13, HIGH);
  10.   sleep(1000);
  11.   digitalWrite(13, LOW);
  12.   sleep(1000);
  13. }
  14. //快速定义
  15. defineTaskLoop(TaskTest1)
  16. {
  17.   digitalWrite(12, HIGH);
  18.   sleep(100);
  19.   digitalWrite(12, LOW);
  20.   sleep(100);
  21. }
  22. void setup() {
  23.   mySCoop.start();
  24.   pinMode(12, OUTPUT);
  25. }
  26. void loop()
  27. {
  28.   yield();
  29. }
复制代码


下载地址:
下载附件SCoop.zip


q2017  见习技师

发表于 2017-3-16 14:49:09

试试看................
回复

使用道具 举报

duyi324  学徒

发表于 2016-12-23 09:13:25

不能再多几个线程吗 0=0 看代码我也感觉只能有两个线程
回复

使用道具 举报

大连林海  初级技神

发表于 2015-4-2 22:41:33

作为小白 还是看不懂:Q
回复

使用道具 举报

hnyzcj  版主

发表于 2015-4-3 07:33:21

大连林海 发表于 2015-4-2 22:41
作为小白 还是看不懂

大学操作系统你没有好好学吧。
回复

使用道具 举报

o熊小猫o  高级技师
 楼主|

发表于 2015-4-3 08:21:20

大连林海 发表于 2015-4-2 22:41
作为小白 还是看不懂

大概就是定义多个loop,然后每个loop各自做自己的事情。
回复

使用道具 举报

大连林海  初级技神

发表于 2015-4-3 10:27:06

hnyzcj 发表于 2015-4-3 07:33
大学操作系统你没有好好学吧。

非计算机专业 好痛苦
回复

使用道具 举报

大连林海  初级技神

发表于 2015-4-3 10:27:12

hnyzcj 发表于 2015-4-3 07:33
大学操作系统你没有好好学吧。

非计算机专业 好痛苦
回复

使用道具 举报

chengbao127121  学徒

发表于 2016-6-7 16:56:44

好东西  试试看
回复

使用道具 举报

immortalt  学徒

发表于 2016-9-26 01:57:49

测试了一下仿佛最多2个线程。。。太少了
回复

使用道具 举报

q2017  见习技师

发表于 2017-9-28 11:22:23

谢谢分享.......................
回复

使用道具 举报

1214032625  见习技师

发表于 2018-4-10 10:16:32

这最多能支持几个线程啊?或者有什么缺点?
回复

使用道具 举报

愁如烟  学徒

发表于 2018-4-28 09:54:34

从测序代码看应该可以多个线程,但是还没有测试不知道。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail