class Timer – виртуальный периодический / однократный таймер

Класс Timer реализует управляемый программно виртуальный таймер, который планирует вызов Python-функции либо один раз (однократно), либо повторно (периодически) с заданным периодом. Используйте его, когда вам нужен лёгкий межпортовый способ запускать функцию обратного вызова по расписанию – для аппаратных возможностей (каналы PWM, захват входа, режим энкодера, мёртвое время, вход прерывания и т. д.) используйте вместо него pyb.Timer.

Доступен на всех портах OpenMV.

Пример – периодический вызов с частотой 10 Гц:

from machine import Timer

def tick(t):
    print("tick")

tim = Timer(-1)
tim.init(period=100, callback=tick)   # 100 ms = 10 Hz

Пример – однократный запуск функции обратного вызова через 2 секунды:

from machine import Timer

def fire(t):
    print("once")

Timer(-1).init(mode=Timer.ONE_SHOT, period=2000, callback=fire)

Конструкторы

class machine.Timer(id: int = -1, /, *, mode: int = PERIODIC, period: int = -1, callback: Callable[[Timer], None] | None = None)

Создаёт виртуальный Timer. id должен быть -1 (единственное поддерживаемое значение). Любые именованные аргументы передаются в init(), чтобы таймер можно было настроить за один вызов.

Методы

init(*, mode: int = PERIODIC, period: int = -1, callback: Callable[[Timer], None] | None = None) None

Инициализирует / заново инициализирует таймер.

  • mode выбирает ONE_SHOT (сработать один раз и остановиться) или PERIODIC (срабатывать повторно).

  • period – период в миллисекундах.

  • callback вызывается при срабатывании таймера. Он получает экземпляр Timer в качестве единственного аргумента.

deinit() None

Останавливает таймер и отменяет любой отложенный вызов функции обратного вызова.

Константы

ONE_SHOT: int

Передайте в mode, чтобы таймер сработал один раз и затем остановился.

PERIODIC: int

Передайте в mode, чтобы таймер срабатывал повторно с интервалами period.