Arduino多线程库
本帖最后由 o熊小猫o 于 2015-4-2 16:09 编辑废话少说,直接进正题。简单的写一下用法第一:#include "SCoop.h"这个不需要解释了吧。。
第二:
void setup() {
mySCoop.start();
}
第三void loop() {
yield();
}
接下来就可以使用多线程了。请继续往下看:定义一个名字为“TaskTest”的线程
defineTask(TaskTest);
void TaskTest::setup()
{
//这里是setup
}
void TaskTest::loop()
{
//这是是loop的内容
}还没完,如果这个线程中执行的动作不需要setup的话,还可以使用defineTaskLoop快速定义的方式,如下:
defineTaskLoop(TaskTest1)
{
//我是一段小代码呀,咿呀咿呀哟
}注意一点,使用此库之后,请使用sleep(ms)作为延时。因为sleep(ms)只针对当前线程。而delay(ms)是针对全局的。
最后来一个完成的演示吧,2个LED分别以100毫秒和1秒的速度闪烁。12和13引脚分别接LED,然后运行代码看看效果吧。
#include "SCoop.h"
defineTask(TaskTest);
void TaskTest::setup()
{
pinMode(13, OUTPUT);
}
void TaskTest::loop()
{
digitalWrite(13, HIGH);
sleep(1000);
digitalWrite(13, LOW);
sleep(1000);
}
//快速定义
defineTaskLoop(TaskTest1)
{
digitalWrite(12, HIGH);
sleep(100);
digitalWrite(12, LOW);
sleep(100);
}
void setup() {
mySCoop.start();
pinMode(12, OUTPUT);
}
void loop()
{
yield();
}
下载地址:
试试看................ 不能再多几个线程吗 0=0 看代码我也感觉只能有两个线程 作为小白 还是看不懂:Q 大连林海 发表于 2015-4-2 22:41
作为小白 还是看不懂
大学操作系统你没有好好学吧。 大连林海 发表于 2015-4-2 22:41
作为小白 还是看不懂
大概就是定义多个loop,然后每个loop各自做自己的事情。 hnyzcj 发表于 2015-4-3 07:33
大学操作系统你没有好好学吧。
非计算机专业 好痛苦 hnyzcj 发表于 2015-4-3 07:33
大学操作系统你没有好好学吧。
非计算机专业 好痛苦 好东西试试看 测试了一下仿佛最多2个线程。。。太少了 谢谢分享....................... 这最多能支持几个线程啊?或者有什么缺点?
从测序代码看应该可以多个线程,但是还没有测试不知道。
页:
[1]