arduino yield函数的作用_【Arduino基础教程】多线程入门

本文介绍了如何使用Arduino的SCoop库实现多线程,通过加载库文件、初始化设置和定义任务,详细展示了yield()函数在多线程中的应用。示例代码中解释了yield()在loop()中的作用,并提示了如何使用sleep()避免程序全局暂停。
摘要由CSDN通过智能技术生成

f694416c8eef

Arduino多线程库SCoop

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

Arduino开发板借助SCoop即可轻松实现多线程。

Step 1: 加载库文件SCoop

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(),则会使整个程序都暂停。

参考文献

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值