utime (модуль работы со временем)

Модуль utime предоставляет функции для получения текущего времени и даты, измерения временных интервалов и задержек.

Примечание

Модуль utime представляет собой реализацию MicroPython стандартного модуля Python. модуль time. Его можно импортировать как с помощью 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)

Смещение значения тиков на заданное число, которое может быть как положительным, так и отрицательный. Учитывая значение тиков, эта функция позволяет вычислить тики значение дельта тикает до или после него, следуя модульной арифметике определение тиковых значений.

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)