【Arduino基础教程】多线程入门

Arduino多线程库SCoop

多线程是指从软件或者硬件上实现多个线程并发执行的技术。

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/

推荐阅读更多精彩内容