Questions tagged «millis»

4
如何处理millis()转换?
我需要每五分钟读取一次传感器,但是由于我的草图还需要执行其他任务,因此我不能只delay()在两次读数之间进行。有一个“ 无延迟闪烁”教程,建议我按照以下方式进行编码: void loop() { unsigned long currentMillis = millis(); // Read the sensor when needed. if (currentMillis - previousMillis >= interval) { previousMillis = currentMillis; readSensor(); } // Do other stuff... } 问题在于,millis()大约49.7天后,该值将回滚为零。由于我的草图打算运行更长的时间,因此我需要确保翻转不会使我的草图失败。我可以轻松检测到翻转条件(currentMillis < previousMillis),但不确定该怎么做。 因此,我的问题是:处理millis()过渡的正确/最简单方法是 什么?

5
如何获得准确的时间?
我已经使用Arduino制作了一个时钟,但是时间似乎在漂移。我知道过渡问题;一周内时钟似乎会偏移15分钟左右。 我正在为此 Digi-key的谐振器使用定制PCB 。该代码在每个循环的开头读取millis()函数,并从该值开始工作。 我的问题是:我该如何使用Arduino测量时间,准确到足以制作出可通过的台式时钟?
16 time  millis 

1
millis()如何将自身重置为0
查看该millis()函数的文档,它说: 返回自Arduino开发板开始运行当前程序以来的毫秒数。大约50天后,该数字将溢出(返回零)。 这怎么可能?Arduino是否检测到millis()溢出时将值重置为0?如果是这样,它是如何做到的?我只想知道millis()函数返回的变量到底是怎么回事。
14 millis 

3
可以找到毫秒所花费的时间吗?
该功能millis将在100毫秒或更短的时间内运行。有没有一种可靠的方法来衡量一个毫秒呼叫所花费的时间? 我想到的一种方法是使用micros,但是,对的调用也micros将包括其micros自身的函数调用所花费的时间,因此,取决于micros花费的时间,测量millis可能会关闭。 我需要找到它作为正在处理的应用程序,它需要对代码中执行的每个步骤(包括)进行准确的时间测量millis。
13 time  millis 

3
在中断例程中使用millis()和micros()
文档attachInterrupt()说明: ... millis()依靠中断来计数,因此它在ISR内永远不会增加。由于delay()需要中断才能起作用,因此如果在ISR内部调用,它将不会起作用。micros()最初可以正常工作,但将在1-2 ms之后开始异常运行。... 如何micros()从不同millis()(当然除了他们的精确度)?以上警告是否表示micros()在中断例程中使用始终是个坏主意? 上下文-我想测量低脉冲占用率,因此需要在输入信号发生变化时触发例程并记录当前时间。

3
arduino-millis()
从Arduino参考复制-millis() 提示:请注意,millis的参数是无符号长整数,如果程序员尝试使用其他数据类型(例如int)进行数学运算,则可能会生成错误。 什么样的数学?与Millis一起工作时,排除了哪种其他类型的处理? 有人可以澄清这一说法和/或举一些例子吗?
10 millis  data-type 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.