时间¶
该 utime
模块提供获取当前时间和日期、测量时间间隔和延迟的函数。
笔记
该utime
模块是标准 Python
time
模块的 MicroPython 实现 。它可以同时使用和 导入,但模块是相同的。 import utime
import time
职能¶
-
utime.
sleep
(seconds)¶ 睡眠给定的秒数。您可以使用浮点数休眠小数秒,或使用
utime.sleep_ms()
和utime.sleep_us()
函数。
-
utime.
sleep_ms
(ms)¶ 给定毫秒数的延迟,应为正数或 0。
-
utime.
sleep_us
(us)¶ 给定微秒数的延迟,应为正数或 0。
-
utime.
ticks_ms
()¶ 返回带有任意参考点的递增毫秒计数器,该计数器在某个值之后环绕。
-
utime.
ticks_us
()¶ 就像
utime.ticks_ms()
上面一样,但以微秒为单位。
-
utime.
ticks_add
(ticks, delta)¶ 按给定数字偏移刻度值,可以是正数也可以是负数。给定一个刻度值,此函数允许根据刻度值的模算术定义计算它之前或之后的刻度值增量刻度。
例子:
# Find out what ticks value there was 100ms ago print(ticks_add(time.ticks_ms(), -100)) # Calculate deadline for operation and test for it deadline = ticks_add(time.ticks_ms(), 200) while ticks_diff(deadline, time.ticks_ms()) > 0: do_a_little_of_something() # Find out TICKS_MAX used by this port print(ticks_add(0, -1))
-
utime.
ticks_diff
(ticks1, ticks2)¶ 测量从
utime.ticks_ms()
或ticks_us()
函数返回的值之间的刻度差异 ,作为可能环绕的带符号值。参数顺序与减法运算符相同,与 具有相同的含义。
ticks_diff(ticks1, ticks2)
ticks1 - ticks2
.utime.ticks_diff()
旨在适应各种使用模式,其中包括:轮询超时。在这种情况下,事件的顺序是已知的,您将只处理以下的积极结果
utime.ticks_diff()
:# Wait for GPIO pin to be asserted, but at most 500us start = time.ticks_us() while pin.value() == 0: if time.ticks_diff(time.ticks_us(), start) > 500: raise TimeoutError
安排活动。在这种情况下,
utime.ticks_diff()
如果事件逾期,结果可能为负:# This code snippet is not optimized now = time.ticks_ms() scheduled_time = task.scheduled_time() if ticks_diff(scheduled_time, now) > 0: print("Too early, let's nap") sleep_ms(ticks_diff(scheduled_time, now)) task.run() elif ticks_diff(scheduled_time, now) == 0: print("Right at time!") task.run() elif ticks_diff(scheduled_time, now) < 0: print("Oops, running late, tell task to run faster!") task.run(run_faster=true)