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

硬件定时器处理周期和事件的时间。在MCUs和SoCs中,定时器可能是最为灵活和异构的硬件,其根据模型不同而大有不同。MicroPython的定时器类使用一个给定周期(或经过某些延迟后)定义执行回调的基线操作,并允许特定板来定义更多非标准行为(因此无法移植到其他板上)。

请参阅关于计时器回调的 important constraints 的讨论。

备注

内存不能在IRQ处理器(一个中断)内部分配,所以处理器内部引发的异常无法提供更多信息。如何克服这一限制,请参见 micropython.alloc_emergency_exception_buf()

构造函数

class machine.Timer(id, ...)

创建一个具有给定id的新定时器对象。Id为-1则构造一个虚拟定时器(如果支持的话)。

方法

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

初始化定时器。示例:

tim.init(period=100)                         # 周期为100ms
tim.init(mode=Timer.ONE_SHOT, period=1000)   # one shot firing after 1000ms
tim.init(mode=Timer.ONE_SHOT, period=1000)   # 1000毫秒后触发

关键字参数:

  • mode 可以是其中之一:

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

    • Timer.PERIODIC - 定时器按通道的配置频率周期性地运行。

Timer.deinit()

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

常量

Timer.ONE_SHOT
Timer.PERIODIC

定时器运行模式。