时间¶
该 utime
模块提供获取当前时间和日期、测量时间间隔和延迟的函数。
笔记
该 utime
模块是标准 Python
time
模块的 MicroPython 实现 。它可以同时使用和 导入,但模块是相同的。import utime
and
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)
has the same meaning asticks1 - 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)