class Timer -- 虚拟周期/单次定时器

Timer 实现了一个由软件管理的虚拟定时器,它以给定的周期调度一个 Python 回调,可以是一次(单次)或重复(周期性)。当你想要一种轻量、跨端口的方式按计划运行回调时使用它 —— 对于硬件级功能(PWM 通道、输入捕获、编码器模式、死区、刹车输入等),请改用 pyb.Timer

在每个 OpenMV 端口上均可用。

示例 —— 周期性 10 Hz 回调:

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)

构造一个虚拟 Timerid 必须为 -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 为间隔重复触发。