haas506 2.0开发教程-driver-TIMER
B站haas开发教程 B站教学视频链接
最新案例教程点击下方链接跳转,CSDN已停止更新
点
击
跳
转
1.定时器
案例说明
开发板自带计时功能,可以精准的计时
本案例使用haas中TIMER相关函数进行定时print。更改代码会有不同效果。
from driver import TIMER
#在回调函数中修改定时时间
def cb6(args):
global count
tim0.period(5000)
print("count=",count)
count+=1
#只打印一次,就关闭计时器
def cb5(args):
global count
print("count:",count)
count+=1
tim0.close()
# 每隔一秒计数,计数到6之后停止,然后又开始
def cb4(args):
global count
if count>5:
tim0.stop()
tim0.start()
print('count:',count)
count+=1
# 每隔一秒计数,计数到6之后停止,然后又开始
def cb3(args):
global count
if count>5:
tim0.stop()
tim0.reload()
print('count:',count)
count+=1
# 每隔一秒计数,计数到6停止
def cb2(args):
global count
if count>5:
tim0.stop()
print('count:',count)
count+=1
# 每隔一秒计数
def cb1(args):
global count
print("count:",count)
count+=1
if __name__=='__main__':
global count
count=0
tim0=TIMER(0)
tim0.open(period=1000, mode=TIMER.PERIODIC, callback=cb1)
#tim0.open(period=5000, mode=tim0.PERIODIC, callback=cb1)
#tim0.open(period=1000, mode=TIMER.ONE_SHOT, callback=cb1)
#tim0.open(period=1000, mode=tim0.PERIODIC, callback=cb6)
2.Class-TIMER
open | close | start | stop | reload | period |
---|---|---|---|---|---|
打开硬件定时器 | 关闭硬件定时器 | 开始计时 | 停止计时 | 设置定时器定时时间 | 重启定时器 |
实例化
tim0=TIMER(ID)
参数说明:
参数 | 类型 | 必选参数? | 说明 |
---|---|---|---|
ID | Number | 是 | 硬件定时器ID设置,ESP32内置4个硬件定时器,ID设置范围0~3 |
tim0.open(period,mode,callback)
作用:打开定时器,在打开的时候会自动启动定时器
参数说明:
|参数 |类型 |必选参数?| 说明
|–|–|–|–|–|–|
|period |Number| 是| 硬件定时器时间设置,单位ms,即硬件定时器启动后该设定时候到时呼叫callback函数
|mode |String| 是| 定时模式,ONE_SHOT 只工作一次,PERIODIC 循环工作
|function callback| Function| 是| 定时器到时间后触发的执行函数
返回:0成功
tim0.close()
作用:关闭定时器,需确保要关闭的TIMER处于open状态
返回:0成功
tim0.start()
作用:启动定时器,需确保此TIMER处于open状态
返回:0成功
tim0.stop()
作用:暂停定时器,需确保此TIMER处于open状态
返回:0成功
tim0.reload()
作用:重启TIMER定时器,并根据之前的设置重新开始计时
返回:0成功
tim0.period(ms)
作用:设置定时器定时时间,并重新开始计时,可在open后在回调函数中修改定时间隔
参数:定时的ms数
返回:0成功
3.总结
本节介绍了haas506的driver库中的TIMER(定时器)模块。用户可以自定义定时周期、定时方式以及回调函数中执行的程序等。