定时器类——控制硬件定时器

硬件计时器处理周期和事件的计时。定时器可能是 MCU 和 SoC 中最灵活和异构的硬件,从模型到模型差异很大。MicroPython 的 Timer 类定义了在给定时间段内(或在一些延迟后一次)执行回调的基线操作,并允许特定板定义更多非标准行为(因此不能移植到其他板)。

请参阅有关 Timer 回调的重要约束的讨论。

笔记

无法在 irq 处理程序(中断)内分配内存,因此在处理程序中引发的异常不会提供太多信息。有关 micropython.alloc_emergency_exception_buf()如何解决此限制的信息,请参阅 。

如果您使用的是 WiPy 板,请参考 machine.TimerWiPy 而不是此类。

构造函数

class machine.Timer(id, ...)

构造给定 id 的新计时器对象。-1 的 ID 构造一个虚拟计时器(如果板支持)。

参见 init初始化参数。

方法

Timer.init(*, mode=Timer.PERIODIC, period=- 1, callback=None)

初始化定时器。例子:

tim.init(period=100)                         # periodic with 100ms period
tim.init(mode=Timer.ONE_SHOT, period=1000)   # one shot firing after 1000ms

关键字参数:

  • mode可以是以下之一:

    • Timer.ONE_SHOT - 定时器运行一次,直到通道的配置周期到期。

    • Timer.PERIODIC - 定时器以通道的配置频率定期运行。

Timer.deinit()

取消初始化定时器。停止定时器,并禁用定时器外设。

常数

Timer.ONE_SHOT
Timer.PERIODIC

定时器操作模式。