Arduino多線程庫SCoop
多線程是指從軟件或者硬件上實現(xiàn)多個線程并發(fā)執(zhí)行的技術(shù)蝶锋。
Arduino開發(fā)板借助SCoop即可輕松實現(xiàn)多線程砚偶。
Step 1: 加載庫文件SCoop
到https://github.com/fabriceo/SCoop下載SCoop庫,然后添加到Arduino IDE中舞痰。
Step 2: 初始化設(shè)置
1.引入頭文件
#include "SCoop.h"
2.設(shè)置setup
void setup() {
mySCoop.start();
}
3.設(shè)置loop
void loop() {
yield();
}
4:定義的線程并實現(xiàn)具體功能
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()妆兑,則會使整個程序都暫停。