openmv millis()
时间: 2023-12-04 15:05:29 浏览: 76
openmv中的millis()函数是用来获取当前系统运行的毫秒数的。它可以用来计算某个操作所消耗的时间。例如,可以使用以下代码来计算某个操作执行的时间:
start = pyb.millis()
# 执行一些操作
elapsed_time = pyb.elapsed_millis(start)
这样,elapsed_time变量将保存执行操作所消耗的毫秒数。\[2\]需要注意的是,如果在休眠状态期间调用了pyb.stop()函数,支持该功能的硬件计数器将会暂停,这将影响pyb.elapsed_millis()函数的结果。\[3\]
#### 引用[.reference_title]
- *1* *2* *3* [openmv4系列5----板级功能](https://blog.csdn.net/yunshengbixiao/article/details/116204519)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
相关问题
millis函数
在 Arduino 编程中,millis() 函数用于返回自程序启动以来的毫秒数。它是一个无符号长整型数,可以存储大约 50 天左右的时间,然后溢出重新开始计数。通常情况下,我们使用 millis() 函数来实现计时、延迟等等功能。例如,要实现一个每隔一秒钟闪烁一次 LED 的程序,可以使用以下代码:
```
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // 点亮 LED
delay(1000); // 延迟 1 秒
digitalWrite(LED_BUILTIN, LOW); // 熄灭 LED
delay(1000); // 延迟 1 秒
}
```
上述代码使用了 delay() 函数来进行延迟,但是这种方式会阻塞程序的执行,因此无法同时执行其他任务。我们可以改用 millis() 函数来实现非阻塞式的延迟,如下所示:
```
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
static unsigned long lastTime = 0; // 上一次闪烁的时间
unsigned long currentTime = millis(); // 当前时间
if (currentTime - lastTime >= 1000) { // 如果已经过去了 1 秒钟
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN)); // 反转 LED 状态
lastTime = currentTime; // 更新上一次闪烁的时间
}
}
```
上述代码使用了一个静态变量 lastTime 来保存上一次闪烁的时间,然后每次循环都计算当前时间与上一次时间的差值,如果差值大于等于 1000 毫秒(即已经过去了 1 秒钟),就反转 LED 的状态,并更新上一次闪烁的时间。这种方式可以实现非阻塞式的延迟,程序可以同时执行其他任务。
arduino millis
Arduino的millis()函数用于返回自启动以来的毫秒数。它是一个无符号长整型数据(unsigned long),可以用来计时、计算时间间隔、控制延迟等。
示例用法:
```cpp
unsigned long startTime = 0; // 记录起始时间
void setup() {
Serial.begin(9600);
startTime = millis(); // 获取当前时间
}
void loop() {
unsigned long currentTime = millis(); // 获取当前时间
unsigned long elapsedTime = currentTime - startTime; // 计算经过的时间
Serial.print("Elapsed Time: ");
Serial.print(elapsedTime);
Serial.println(" ms");
delay(1000); // 延迟1秒钟
}
```
上述示例中,setup()函数中记录了起始时间,然后在loop()函数中通过调用millis()函数获取当前时间,并计算与起始时间的时间差,然后通过串口输出经过的时间。delay()函数用于控制每次循环之间的延迟,此处的延迟为1秒钟。
注意:由于millis()返回的是无符号长整型,当时间达到上限后会重新从0开始计数。如果需要计时更长的时间,可以考虑使用更大的数据类型或其他方式来处理溢出问题。
阅读全文