定时器是嵌入式系统中最基本的功能之一,它除了可以实现定时器功能外,还能够实现延时、PWM输出、波形发生器、舵机控制、节拍器、周期唤醒、自动数据采集等功能。在MicroPython中,很多函数的功能也依赖定时器。
1.获取Timer类里面的方法:
>>> help(pyb.Timer) object <class ‘Timer‘> is of type type init -- <function> deinit -- <function> channel -- <function> counter -- <function> source_freq -- <function> freq -- <function> prescaler -- <function> period -- <function> callback -- <function> UP -- 0 DOWN -- 16 CENTER -- 32 PWM -- 0 PWM_INVERTED -- 1 OC_TIMING -- 2 OC_ACTIVE -- 3 OC_INACTIVE -- 4 OC_TOGGLE -- 5 OC_FORCED_ACTIVE -- 6 OC_FORCED_INACTIVE -- 7 IC -- 8 ENC_A -- 9 ENC_B -- 10 ENC_AB -- 11 HIGH -- 0 LOW -- 2 RISING -- 0 FALLING -- 2 BOTH -- 10 BRK_OFF -- 0 BRK_LOW -- 1 BRK_HIGH -- 2
定时器的使用方法是先导入Timer模块,然后定义定时器,设置定时器ID、频率、回调函数等参数。如:
>>> from pyb import Timer >>> tim = Timer(1,freq=100) #使用定时器1,频率100hz >>> tim = Timer(4,freq=200,callback=print(‘yes‘)) #使用定时器4,频率200hz,并设置回调函数 yes >>>
插入知识点:板载LED(3)和LED(4)分别是橙色的灯和蓝色的灯,它们两个都可以进行亮度调节,其它两个(LED(1)、LED(2))没有调节亮度功能,区别就在于LED(3)和LED(4)使用了定时器实现PWM调节亮度。LED(3)使用的是定时器2,LED(4)使用的是定时器3,所以在使用这两个灯的亮度调节功能时不可以再使用这两个定时器了,不然程序就会和预想的格格不入。
LED_YELLOW -- Pin(Pin.cpu.A15, mode=Pin.ALT, af=Pin.AF1_TIM2)
LED_BLUE -- Pin(Pin.cpu.B4, mode=Pin.ALT, af=Pin.AF2_TIM3)
Timer(n)
定义Timer,n=1~14。
class Timer - 控制内部定时器
定时器可用于各种任务。目前,只实现了最简单的情况:定期调用函数。
每个计时器都包含一个以特定速率计数的计数器。计数的速率是外设时钟频率(Hz)除以定时器预分频器。当计数器到达计时器周期时,它会触发一个事件,计数器将重置为零。通过使用回调方法,timer事件可以调用Python函数。
定时器的变化率 = 外设时钟频率(Hz) / 定时器预分频器
实例:使用固定频率(也就是定时时间)来翻转LED的状态
>>> time = pyb.Timer(4) #创建使用定时器4 >>> time.init(freq=2) #定时频率2Hz,也就是0.5秒计满 >>> time.callback(lambda t:pyb.LED(1).toggle())
freq参数就是计时数,以赫兹来表示:
原文:https://www.cnblogs.com/iBoundary/p/11514209.html