c++ - Arduino millis() - millis() 如何等于 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 循环运行时,它都会返回当前的毫秒数,您的假设是它将返回旧值。
推荐阅读
- java - Android Studio 应用不适合屏幕
- linux - 我运行 WSL2 的 Windows 计算机如何知道在哪个操作系统内核上运行程序?
- clickhouse - Clickhouse - 最新记录
- node.js - Chutzpah 不允许我使用
我正在尝试通过 NodeJs 和 Chutzpah 使用 Jasmine 来测试我项目中的 javascript。这是在 Visual Studio 中
茉莉花测试看起来像
/// <reference path ='../../net5.Ui/wwwroot/Shared/Javascript/helpers.js' />
- c# - 用于 Dotnet Framework 4.6.1 的 Gitlab CI 和 YAML - Selenium 自动化
- swift5 - 导航栏按钮未显示 - xcode 12,swift 5
- twilio - Twilio Function 帮助(使用 Twilio Functions 和 Google Sheets 构建社区 SMS 群聊)
- typescript - 如何使用对象的值在打字稿中定义新类型?
- javascript - 使用 lodash 将包含数组的对象数组转换为唯一的对象查找
- python - 为什么在 Python 1%2>>>1 或 5%6>>>5