dja*_*dev 0 c++ arduino arduino-ide arduino-esp8266 arduino-c++
所以我知道millis() 返回自程序开始运行以来经过的时间,对吗?
现在我遇到了这样的情况,在延迟中使用了 millis():
long dly = millis();
while (millis() - dly < 250) {
yield(); // enough time to send response
}
Run Code Online (Sandbox Code Playgroud)
的值怎么可能millis() - dly大于0?如果关键是无限期让步,为什么有人会使用这样的延迟?
我不是 ardunio 编码员,但看看代码:
long dly = millis();
while (millis() - dly < 250) {
yield(); // enough time to send response
}
Run Code Online (Sandbox Code Playgroud)
在第 1 行,您定义了一个变量,用于保存自开始以来经过的时间,然后在 while 循环中检索当前的 millis(),直到它大于 250 毫秒。
例子:
long dly = millis(); => Say millis = 1250,
inside while loop => millis will update itself until its 1500
Run Code Online (Sandbox Code Playgroud)
基本上代码等待 250 毫秒。每次循环运行时,它都会返回当前的毫秒数,您的假设是它将返回旧值。
| 归档时间: |
|
| 查看次数: |
124 次 |
| 最近记录: |