MicroPython标准库函数Timer | MicroPython库 | 技术支持 | MicroPython


当前位置:首页>技术支持>MicroPython库>MicroPython标准库函数Timer

MicroPython标准库函数Timer

原创版权归山东萝卜科技有限公司所有,转载必须以链接形式注明作者和原始出处。

class pyb.Timer(id, ...)

创建定时器对象,id范围是[1..14]

timer.init(*, freq, prescaler, period)

 定时器初始化。

  • freq,频率

  • prescaler,预分频,[0-0xffff],定时器频率是系统时钟除以(prescaler + 1)。定时器2-7和12-14最高频率是84MHz,定时器1、8-11是  168MHz

  • peroid,周期值(ARR)。定时器1/3/4/6-15是 [0-0xffff],定时器2和5是[0-0x3fffffff]。

  • mode,计数模式

  • Timer.UP - 从 0 到 ARR (默认)

  • Timer.DOWN - 从 ARR 到 0.

  • Timer.CENTER - 从 0 到 ARR,然后到 0.

  • div,用于数值滤波器采样时钟,范围是1/2/4。

  • callback,定义回调函数,和Timer.callback()功能相同

  • deadtime,死区时间,通道切换时的停止时间(两个通道都不会工作)。范围是[0..1008],它有如下限制:

    • 0-128 in steps of 1.

    • 128-256 in steps of 2,

    • 256-512 in steps of 8,

    • 512-1008 in steps of 16

        deadtime的测量是用source_freq 除以 div,它只对定时器1-8有效。

timer.deinit()

禁止定时器,禁用回调函数,禁用任何定时器通道

timer.callback(fun)

设置定时器回调函数

 timer.channel(channel, mode, ...)

设置定时器通道

  • channel,定时器通道号

  • mode,模式

    • Timer.PWM,PWM模式(高电平方式)

    • Timer.PWM_INVERTED,PWM模式(反相方式)

    • Timer.OC_TIMING,不驱动GPIO

    • Timer.OC_ACTIVE,比较匹配,高电平输出

    • Timer.OC_INACTIVE,比较匹配,低电平输出

    • Timer.OC_TOGGLE,比较匹配,翻转输出

    • Timer.OC_FORCED_ACTIVE,强制高,忽略比较匹配

    • Timer.OC_FORCED_INACTIVE,强制低,忽略比较匹配

    • Timer.IC,输入扑捉模式

    • Timer.ENC_A,编码模式,仅在CH1改变时修改计数器

    • Timer.ENC_B,编码模式,仅在CH2改变时修改计数器

    • callback,每个通道的回调函数

    • pin,驱动GPIO,可以是None

在 Timer.PWM 模式下的参数

  • pulse_width,脉冲宽度

  • pulse_width_percent,百分比计算的占空比

在 Timer.OC 模式下的参数

  • compare,比较匹配寄存器初始值

  • polarity,极性

  • Timer.HIGH,输出高

  • Timer.LOW,输出低

在 Timer.IC 模式下的参数(捕捉模式只有在主通道有效)

  • polarity

  • Timer.RISING,上升沿捕捉

  • Timer.FALLING,下降沿捕捉

  • Timer.BOTH,上升下降沿同时捕捉

Timer.ENC 模式:

  • 需要配置两个Pin

  • 使用 timer.counter() 方法读取编码值

  • 只在CH1或CH2上工作(CH1N和CH2N不工作)

  • 编码模式时忽略通道号

timer.counter([value])

设置或获取定时器计数值

timer.freq([value])

设置或获取定时器频率

timer.period([value])

设置或获取定时器周期

timer.prescaler([value])

设置或获取定时器预分频

timer.source_freq()

获取定时器源频率(无预分频)