【发布时间】:2018-08-03 06:22:31
【问题描述】:
我正在使用带有多个计时器的 NodeMCU。 此代码运行正常。有 3 个计时器功能,其计数取决于来自 firebase 的输入,每个都有延迟。但是当延迟到来时,另一个计时器会停止一段时间,直到延迟完成。代码如下:
//timerrak1
void t2Callback() {
if (start[0] == milis[0]) {
Serial.println("TIMER1");
digitalWrite(selenoid[0], LOW);
digitalWrite(pompa, LOW);
delay(durasi[0]);
digitalWrite(pompa, HIGH);
digitalWrite(selenoid[0], HIGH);
t2.disable();
start[0] = 0;
}
start[0] = start[0] + 1000;
}
//timerrak2
void t4Callback() {
if (start[1] == milis[1]) {
Serial.println("TIMER2");
digitalWrite(selenoid[1], LOW);
digitalWrite(pompa, LOW);
delay(durasi[1]);
digitalWrite(pompa, HIGH);
digitalWrite(selenoid[1], HIGH);
t4.disable();
start[1] = 0;
}
start[1] = start[1] + 1000;
}
//timerrak3
void t5Callback() {
if (start[2] == milis[2]) {
Serial.println("TIMER3");
digitalWrite(selenoid[2], LOW);
digitalWrite(pompa, LOW);
delay(durasi[2]);
digitalWrite(pompa, HIGH);
digitalWrite(selenoid[2], HIGH);
t5.disable();
start[2] = 0;
}
start[2] = start[2] + 1000;
}
我的问题是如何让每个定时器的延迟不影响另一个定时器的功能。
【问题讨论】:
-
除了数组偏移量之外,这些函数都是相同的。您可以将其设为模板参数或函数参数。