1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/blackwalnutlabs-waffle_nano_v1_python_api_document

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
4 лет назад
Loading...
README.md

utime 时间相关的函数

概要

   本节介绍时间函数utime概念,以及如何在MicroPython中使用utime。

  utime 模块提供用于获取当前时间和日期、测量时间间隔和延迟的函数。

维护实际日历日期/时间

  • 时刻: 使用2000-01-01 00:00:00 UTC开始的时间。
  • 维护实际日历日期/时间: 这需要实时通信(RTC)。在具备底层OS的系统中,RTC可能是隐式的。设置和维护实际日历时间应是OS/RTOS的职能, 且在MicroPython之外完成,只使用OS API查询日期/时间。

Utime API详解

  使用import utime导入定时器utime模块

  再使用TAB 按键来查看utime中所包含的内容:

>>> import utime
>>> utime.
__name__        gmtime          localtime       mktime
sleep           sleep_ms        sleep_us        ticks_add
ticks_cpu       ticks_diff      ticks_ms        ticks_us
time

函数

时间元组

  utime.localtime([secs])

  函数说明:将一个以秒计的时间转换为一个包含下列内容的8元组:(年、月、日、小时、分钟、秒、一周中某日、一年中某日)。若未提供秒或为None,则使用2000年1月1日以来的时间8元组

  • 年包括世纪(例如2014)
  • 月为 1-12
  • 日为 1-31
  • 小时为 0-23
  • 分钟为 0-59
  • 秒钟 0-59
  • 周中某日为 0-6 (对应周一到周日)
  • 年中某日为 1-366

  示例:

>>> import utime
>>> utime.localtime(1000)#转换1000s为时间元组
(2000, 1, 1, 0, 16, 40, 5, 1)

时间元组逆函数

  utime.mktime([tuple])

  函数说明:局部时间的逆函数,其参数为一个表示本地时间的8元组。返回一个表示2000年1月1日以来的秒钟的整数。

  示例:

>>> import utime
>>> utime.mktime([2000,1,1,0,0,0,5,1])#将2000年1月1日0时0分0秒周六,一年中第一天转换成2000年1月1日以来的秒钟的整数
0

休眠时间

  utime.sleep(seconds)

  函数说明:休眠给定秒数的时间。秒钟数可为一个表示休眠时间的浮点数。注意:其他端口可能不接受浮点参数,为满足兼容性,使用 sleep_ms()sleep_us() 函数。

  示例:

>>> import utime
>>> utime.sleep(2)#休眠2秒,等2s后才可以干其他事

  utime.sleep_ms(*ms*)

  函数说明:休眠给定毫秒数的时间,应为正整数或0,1s=1000ms。

  示例:

>>> import utime
>>> utime.sleep_ms(200)#休眠0.2秒,等0.2s后才可以干其他事

  utime.sleep_us(*us*)

  函数说明:休眠给定微秒数的时间。应为正整数或0,1s=1000ms=1000000us。

  示例:

>>> import utime
>>> utime.sleep_us(2000000)#休眠0.2秒,等0.2s后才可以干其他事

递增计数器

  utime.ticks_ms()

  函数说明:返回不断递增的毫秒计数器,在某些值后会重新计数(未指定)。计数值本身无特定意义,只适合用在 utime.ticks_diff()utime.ticks_add()

  utime.ticks_us()

  函数说明:返回不断递增的微秒计数器,在某些值后会重新计数(未指定)。计数值本身无特定意义,只适合用在 utime.ticks_diff()utime.ticks_add()

  utime.ticks_cpu()

  函数说明:与 ticks_msticks_us 相似,但有更高的分辨率(通常CPU时钟)。计数值本身无特定意义,只适合用在 utime.ticks_diff()utime.ticks_add()

递增计数器间隔计算

  utime.ticks_add(ticks, delta)

  函数说明:用一个给定数字来抵消ticks值,该数字可为正或负。给定一个 ticks 值,该函数允许计算之前或之后ticks的值,返回一个表示2000年1月1日以来的秒钟的整数

  ticks:须为调用的 utime.ticks_ms()utime.ticks_us()utime.ticks_cpu() 函数

  delta:给定的毫秒数值,为负数代表之前,为正数代表之后。

  示例:

>>> import utime
>>> utime.ticks_add(utime.ticks_ms,-100)#找到100ms前的计数器值
452284

  utime.ticks_diff(new, old)

  函数说明:测量连续调用调用 utime.ticks_ms()utime.ticks_us()utime.ticks_cpu() 函数间周期。由这些函数返回的值可能在任何时间停止,因此并不支持直接减去这些值。

  old:旧时间,须为调用的 utime.ticks_ms()utime.ticks_us()utime.ticks_cpu() 函数

  new:新时间,须为调用的 utime.ticks_ms()utime.ticks_us()utime.ticks_cpu() 函数。

  “旧” 时间需要在 “新” 时间之前,否则结果无法确定。这个函数不要用在计算很长的时间 (因为 ticks_*() 函数会回绕,通常周期不是很长)。

  示例:

>>> import utime
>>> start = utime.ticks_us()#开始时间为微秒的递增计数器
>>> utime.ticks_diff(utime.ticks_us(),start)#测量开始时间到新的微秒的递增计数器开始时的差值。
220003042

开始时间的秒数

  utime.time()

  函数说明:返回从开始时间的秒数(整数),假设 RTC 已经设置好。如果 RTC 没有设置,函数将返回参考点开始计算的秒数。开发可移植的MicroPython应用程序, 不应依赖该函数来提供高于第二精度的结果。若需要更高精度,需要使用 ticks_ms()ticks_us() 函数。 需要日历时间,无参数的 localtime() 不失为佳选。

  示例:

>>> import utime
>>> utime.time()#返回参考点开始的秒数
15394

示例

  显示各种类型时间

import utime
set_time = utime.mktime((2021, 5, 8, 11, 30, 0, 0, 27))
print(set_time)
print(utime.localtime(set_time))
print(utime.localtime())
print(utime.mktime(utime.localtime()))
print(utime.localtime(utime.ticks_add(utime.ticks_ms,-100)))

  第一行导入时间utime

  第二、三行把8个元组形式的2000年1月1日到给定时间转换成秒数的整数并打印。

  第四行把秒数的整数转换成8元组形式的时间格式

  第五行:utime.localtime()输出2000年1月1日以来的时间8元组

  第六行:utime.localtime()输出2000年1月1日以来的时间8元组,utime.mktime()需要的参数为时间的8元组,所以会打印出2000年1月1日以来的时间的秒数的整数

  第七行:utime.ticks_add(ticks,delta)会计算给定一个 ticks 值之前或之后时间秒数的整数,ticks 值是返回不断递增的毫秒计数器utime.ticks_ms,delta是-100ms,因为其是负数,所以是找100ms前的计数器值的秒数的正整数。再通过utime.localtime()将其转换成8元组类型时间格式打印出来。

Комментарий ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/blackwalnutlabs-waffle_nano_v1_python_api_document.git
git@gitlife.ru:oschina-mirror/blackwalnutlabs-waffle_nano_v1_python_api_document.git
oschina-mirror
blackwalnutlabs-waffle_nano_v1_python_api_document
blackwalnutlabs-waffle_nano_v1_python_api_document
master