多线程是指从软件或者硬件上实现多个线程并发执行的技术。
Arduino开发板借助SCoop即可轻松实现多线程。
Step 1: 加载库文件SCoop
到https://github.com/fabriceo/SCoop下载SCoop库,然后添加到Arduino IDE中。
Step 2: 初始化设置
1.引入头文件
#include "SCoop.h"
2.设置setup
void setup() {
mySCoop.start();
}
3.设置loop
void loop() {
yield();
}
4:定义的线程并实现具体功能
defineTask(TaskTest);
void TaskTest::setup()
{
//这里是setup
}
void TaskTest::loop()
{
//这是是loop,需要干啥在这儿写就好了。
}
Step3:完整示例
#include "SCoop.h"
defineTask(Task1);
void Task1::setup()
{
pinMode(13, OUTPUT);
}
void Task1::loop()
{
digitalWrite(13, HIGH);
sleep(1000);
digitalWrite(13, LOW);
sleep(1000);
}
//快速定义
defineTaskLoop(Task2)
{
digitalWrite(12, HIGH);
sleep(100);
digitalWrite(12, LOW);
sleep(100);
}
void setup() {
mySCoop.start();
pinMode(12, OUTPUT);
}
void loop()
{
yield();
}
【tips】
1.快速定义,即省略setup
defineTaskLoop(TaskTest1){
//我是loop
}
2.如果只是想在某个线程中暂停,请使用sleep(ms)。若使用delay(),则会使整个程序都暂停。
参考文献
http://www.fuckcode.net/arduino%E5%A4%9A%E7%BA%BF%E7%A8%8B/