1
私は以下のコードをテストし、正しく動作することを確認しました。本質的にはset void loop()arduinoでタイマが機能していない
は、コールmyThread.setInterval(5000);
は5秒後に点滅主導開始します。
#include <Thread.h>
Thread myThread = Thread();
char powerValue;
int ledPin1 = 2;
boolean flag = false;
void myThreadCallback() {
digitalWrite(ledPin1, HIGH);
}
void setup() {
pinMode(ledPin1, OUTPUT);
digitalWrite(ledPin1, LOW);
Serial.begin(9600);
myThread.onRun(myThreadCallback);
flag = true;
myThread.setInterval(5000);
}
void loop() {
if (Serial.available()) {
powerValue = Serial.read();
Serial.println(powerValue);
}
if (powerValue == 'A') {
} else if (powerValue == 'a') {
digitalWrite(ledPin1, LOW);
}
if (myThread.shouldRun() && flag == true)
myThread.run();
powerValue = 'Z';
}
Iは以下に示されループ()コードにを呼び出すを押すこのコードのわずかな変化を書きました。
ただし、このコードで、私にはわかっていないいくつかの理由のためは最初から代わりに5秒を待っているの LEDが点灯します。#include <Thread.h>
Thread myThread = Thread();
char powerValue;
int ledPin1 = 2;
boolean flag = false;
void myThreadCallback() {
digitalWrite(ledPin1, HIGH);
}
void setup() {
pinMode(ledPin1, OUTPUT);
digitalWrite(ledPin1, LOW);
Serial.begin(9600);
myThread.onRun(myThreadCallback);
}
void loop() {
if (Serial.available()) {
powerValue = Serial.read();
Serial.println(powerValue);
}
if (powerValue == 'A') {
flag = true;
myThread.setInterval(5000);
// checks if thread should run
} else if (powerValue == 'a') {
digitalWrite(ledPin1, LOW);
}
if (myThread.shouldRun() && flag == true)
myThread.run();
powerValue = 'Z';
}
質問。 2人のソースの間で動作が異なる理由は誰でも理解できますか?