Arduino使用SCoop实现多线程任务

库文件下载地址

GitHub下载地址

加载库文件

将下载到的SCoop文件夹放入Arduino\libraries中,并在新建ino文件时加载SCoop库文件

命令执行与调用

使用时在主程序的Setup函数中写入以下代码:

#include <SCoop.h>
void setup() {
  mySCoop.start();
}
void loop()
{
  yield();
}
完整代码及子线程完整定义

注意延迟函数使用sleep();不要使用delay();
sleep();只在当前线程进行延迟,delay();则会在全局进行延迟。
实现线程1以1s的频率闪烁,线程2以2s的频率闪烁

#include <SCoop.h>
defineTask(TaskTest1);//定义子线程1
defineTask(TaskTest2);//定义子线程2
void TaskTest1::setup()//线程1设定
{
  pinMode(2, OUTPUT);
}
void TaskTest1::loop()//线程1循环
{
  digitalWrite(2, HIGH);
  sleep(1000);
  digitalWrite(2, LOW);
  sleep(1000);
}

void TaskTest2::setup()//线程2设定
{
  pinMode(3, OUTPUT);
}
void TaskTest2::loop()//线程2循环
{
  digitalWrite(3, HIGH);
  sleep(2000);
  digitalWrite(3, LOW);
  sleep(2000);
}
void setup() {
  mySCoop.start();
}

void loop()
{
  yield();
}
  • 7
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值