utime (модуль работы со временем)
Модуль utime
предоставляет функции для получения текущего времени и даты,
измерения временных интервалов и задержек.
Примечание
Модуль utime
представляет собой реализацию MicroPython стандартного модуля Python.
модуль time
. Его можно импортировать как с помощью import utime
, так и с помощью
import time
, но модуль тот же.
Функции
- utime.sleep(seconds)
Задержка в течение заданного количества секунд. Вы можете использовать число с плавающей запятой заснуть на долю секунды или использовать
- utime.sleep_ms(ms)
Задержка для заданного количества миллисекунд должна быть положительной или равной 0.
- utime.sleep_us(us)
Задержка для заданного количества микросекунд должна быть положительной или равной 0.
- utime.ticks_ms()
Возвращает увеличивающийся счетчик миллисекунд с произвольной контрольной точкой.
- utime.ticks_us()
Так же, как
utime.ticks_ms()
выше, но в микросекундах.
- utime.ticks_add(ticks, delta)
Смещение значения тиков на заданное число, которое может быть как положительным, так и отрицательный. Учитывая значение тиков, эта функция позволяет вычислить тики значение дельта тикает до или после него, следуя модульной арифметике определение тиковых значений.
Example:
# Узнать какое значение тиков было 100 мс назад print(ticks_add(time.ticks_ms(), -100)) # Рассчитать срок эксплуатации и протестировать его deadline = ticks_add(time.ticks_ms(), 200) while ticks_diff(deadline, time.ticks_ms()) > 0: do_a_little_of_something() # Узнайте TICKS_MAX, используемый этим портом 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()
:# Дождитесь подтверждения вывода GPIO, но не более 500 мкс. start = time.ticks_us() while pin.value() == 0: if time.ticks_diff(time.ticks_us(), start) > 500: raise TimeoutError
Планирование событий. В этом случае результат
utime.ticks_diff()
может быть отрицательный, если событие просрочено:# Этот фрагмент кода не оптимизирован 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)