//此示例演示使用多线程库SCoop以不同速度点亮两个led.
//调用SCoop.h库.
#include <SCoop.h>
void setup() {
//定义引脚为输出模式.
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
//初始化引脚.
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
mySCoop.start();//这是 SCoop 所需要的,而不是 Android 原始计划程序.
}
//任务1,led以500的速度闪烁.
void loop() {
digitalWrite(4, HIGH);
mySCoop.delay(500);//当多个任务正在运行“延迟”时,在等待时控制其他任务并保证它们得到执行.
digitalWrite(4, LOW);
mySCoop.delay(500);
yield(); //yield 产生线程.
}
//任务2,led以1000的速度闪烁.
defineTaskLoop(loop2) {
digitalWrite(5, HIGH);
mySCoop.delay(1000);
digitalWrite(5, LOW);
mySCoop.delay(1000);
}
// //线程3 (3任务会导致mySCoop.delay()随着时间的增长逐渐出现误差).
// defineTaskLoop(loop3) {
// digitalWrite(6, LOW);
// mySCoop.delay(500);
// digitalWrite(6, HIGH);
// mySCoop.delay(500);
// }