有 4 个方法 Clock();Data();Temp();Hum();。一段代码必须在没有延迟()的情况下完成。如何实施?不工作。例如,首先触发 Clock(),然后触发 Hum(),再次触发 Clock(),然后触发 Temp() 和 Hum()。编码:
Clock();
delay(5000);
Data();
delay(2000);
Temp();
delay(2000);
Hum();
delay(2000);
Моя 1 попытка:
void loop() {
if (round(millis() / 5000) % 2 == 0) {
Clock();
}
if (round(millis() / 2000) % 2 == 0) {
Data();
}
if (round(millis() / 2000) % 2 == 0) {
Temp();
}
if (round(millis() / 2000) % 2 == 0) {
Hum();
}
}
2 попытка:
if ( millis() - time1 > 5000)
{
Clock();
time1 = millis();
}
if ( millis() - time2 > 2000)
{
Data();
time2 = millis();
}
if ( millis() - time3 > 2000)
{
Temp();
time3 = millis();
}
if ( millis() - time4 > 2000)
{
Hum();
time4 = millis();
}
3 попытка:
if ( millis() - time1 > 5000)
{
Clock();
time1 = millis();
}
else
{
Data();
}
if ( millis() - time2 > 2000)
{
Temp();
time2 = millis();
}
else
{
Hum();
}
我会做这样的事情:
这里的除法已经是整数了。您不需要对结果进行四舍五入。
您可以使用每种方法: