为什么10秒的延迟不是恒定值,而是在增加?
我正在使用arduino nano版本3。我设置为9600 bps
void loop() {
serialPrint("Saaabbb--hghgE");
}
void serialPrint(String message){
Serial.println(millis());
Serial.println(message);
delay(10000);
}
输出
0
Saaabbb--hghgE
10000
Saaabbb--hghgE
20000
Saaabbb--hghgE
30001
Saaabbb--hghgE
40001
Saaabbb--hghgE
50001
Saaabbb--hghgE
60002
Saaabbb--hghgE
70003
Saaabbb--hghgE
80004
Saaabbb--hghgE
90004
Saaabbb--hghgE
100004
Saaabbb--hghgE
110005
Saaabbb--hghgE
120006
Saaabbb--hghgE
130007
Saaabbb--hghgE
140007
Saaabbb--hghgE
150007
答案 0 :(得分:1)
每两个命令增加的1是实际处理代码所导致的延迟。
Serial.println(millis())
需要花费一些时间才能完成,因此总时间为处理时间+您增加的延迟。
例如:
void loop() {
serialPrint("Saaabbb--hghgE");
}
void serialPrint(String message){
Serial.println(millis()); //takes 0.5millis (for example)
Serial.println(message); //takes 0.5millis (for example)
delay(10000); //takes 10000millis
}
因此,从millis()
开始的总时间为10001。
答案 1 :(得分:0)
是的,这只是处理命令所需要的时间。我不知道您的项目,但是由于我的项目从来不需要毫秒级的精度,因此我认为您可以忽略它。