[英]How can Arduino millis() - millis() equal anything other than 0?
所以我知道millis() 返回程序開始運行以來經過的時間,對吧?
現在我遇到了這樣一種情況,即在這樣的延遲中使用millis():
long dly = millis();
while (millis() - dly < 250) {
yield(); // enough time to send response
}
millis() - dly
的值怎么會大於 0? 如果關鍵是無限期地讓步,為什么有人會使用這樣的延遲?
我不是ardunio編碼器,但看看代碼:
long dly = millis();
while (millis() - dly < 250) {
yield(); // enough time to send response
}
在第 1 行,您定義了一個變量,該變量保存從 start 開始經過的時間,然后在 while 循環中檢索當前的 millis(),直到它大於 250 毫秒。
例子:
long dly = millis(); => Say millis = 1250,
inside while loop => millis will update itself until its 1500
本質上,代碼等待 250 毫秒。 每次 while 循環運行時,它都會返回當前的毫秒數,您的假設是它將返回舊值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.