MicroPython之时间相关函数 流水灯 (基于pyboard)
pyb
中提供一些关于时间的函数,例如做流水灯,延时函数是必不可少的。本次就说说pyb
中的关于时间的函数。
时间相关函数
pyb.delay(ms)
函数说明: 延迟给定的毫秒数
pyb.udelay(us)
函数说明: 延迟给定的微秒数
pyb.millis()
函数说明: 返回上次重置板后的毫秒数。返回值是一个31bit
的有符号数,因此最大的计数范围为
2
30
2^{30}
230毫秒,大约12.4
天,超过该时间就会返回一个负数,当然再过12.4
天就会溢出又从0
开始。
注意: pyb.stop()
如果被调用,则会进入睡眠状态,则会影响和该函数相关的函数的输出,例如pyb.elapsed_millis()
。
pyb.micros()
函数说明: 返回上次重置板后的微秒数。返回值是一个31bit
的有符号数,因此最大的计数范围为
2
30
2^{30}
230微秒,大约17.8
分钟,超过该时间就会返回一个负数,当然再过17.8
分钟就会溢出又从0
开始。
注意: pyb.stop()
如果被调用,则会进入睡眠状态,则会影响和该函数相关的函数的输出,例如pyb.elapsed_micros()
。
pyb.elapsed_millis(start)
函数说明: 返回从start
开始到当前所经过的毫秒数,该函数是pyb.millis()
的封装,始终返回一个正数,最大的测量时间范围为12.4
天。
from pyb import LED
start = pyb.millis()
while pyb.elapsed_millis(start) < 1000:
# Perform some operation
LED(4).on()
pyb.udelay(1000)
LED(4).off()
pyb.delay(1)
pyb.elapsed_micros(start)
函数说明: 返回从start
开始到当前所经过的微秒数,该函数是pyb.micros()
的封装,始终返回一个正数,最大的测量时间范围为17.8
分钟。
from pyb import LED
start = pyb.micros()
while pyb.elapsed_micros(start) < 1000:
# Perform some operation
LED(4).on()
pyb.udelay(200)
LED(4).off()
pyb.udelay(200)