单片机学习小组
直播中

carey123

10年用户 1569经验值
擅长:可编程逻辑 嵌入式技术
私信 关注

NodeMCU静态定时器的功能是什么?

NodeMCU静态定时器的功能是什么?

回帖(1)

李亦然

2022-2-14 10:40:01
Timer模块

tmr模块允许访问简单的定时器,系统计数器和正常运行时间。
它旨在建立定期发生的任务,超时操作,并提供低分辨率的增量。
然而,tmr模块不是一个计时模块。 虽然大多数超时以毫秒或甚至微秒表示,但准确性有限,并且复合错误将导致相当不准确的时间保持。 考虑将rtctime模块用于“挂钟”时间。
NodeMCU提供7个静态定时器,编号为0-6,以及动态定时器创建功能
tmr.delay()
功能:延迟 us 微秒。
语法:tmr.delay(us)
参数:us: 延迟时间,单位:微秒
返回值:nil
示例:tmr.delay(100)——延时100us
tmr.time()
功能:以秒为单位返回系统正常运行时间。类型:uint31,单位:s。
语法:tmr.time()
参数:nil
返回值:系统正常运行的时间
tmr.now()
功能:返回系统计数器的当前值,类型:uint31,单位:us。
语法:tmr.now()
参数:nil
返回值:计数器的值
示例:print(tmr.now)——打印计数器的当前值
tmr.create()
功能:创建动态计时器对象。可以在控制功能中使用动态计时器代替数字ID。 也可以以面向对象的方式进行控制。
语法:
timer=tmr.creat()
timer对象所支持的函数有:
timer:alarm()
timer:interval()
timer:register()
timer:start()
timer:state()
timer:stop()
timer:unregister()
参数:nil
返回值:计时器对象
tmr.interval()
功能:更改已注册的定时器的到期时间间隔,即tmr.alarm()中的interval参数
语法:tmr.interval(id,interval_ms)
参数:
id: 定时器的 id,0~6
interval_ms:修改的定时时间,单位:毫秒,范围:0-6870947
返回值:nil
tmr.register()
功能:配置定时器并注册回调函数以在定时时间到期时调用。
语法:tmr.register(id,interval_ms,mode,function())
参数:
id: 定时器的 id,0~6.
Interval: 定时时间,单位:毫秒,范围:0-6870947
mode: 定时器的模式,0或tmr.ALARM_SINGLE:一次性闹钟;1或tmr.ALARM_AUTO:重复闹钟。
function (): 注册定时器的回调函数,注册的时候不会启动定时器。
返回值:nil
注:要在使用它时先调用tmr.unregister()取消其他的定时器的回调函数,释放系统资源。 对于一次性定时器tmr.ALARM_SINGLE,则不需要,除非它们在到期之前被停止。
示例:
t=tmr.creat()t:register(0,1000,tmr.ALARM_AUTO,function()         print("hello world")  end )        --设置为每秒打印一次t:interval(0,10000)        --修改为每10秒打印一次t:start()--每10秒打印一次“hello world” tmr.unregister()
功能:停止计时器(如果正在运行)且取消注册关联的回调。
语法:tmr.unregister(id)
参数:id: 定时器的 id,0~6
返回值:nil
tmr.alarm()
功能:闹钟函数相当于定时器。这是一个将tmr.register()和tmr.start()组合成一个调用的便捷函数。
语法:tmr.alarm(id, interval,mode, function ())
参数:
id: 定时器的 id,0~6.
Interval: 定时时间,单位:毫秒,范围:0-6870947
mode: 定时器的模式,0或tmr.ALARM_SINGLE:一次性定时;1或tmr.ALARM_AUTO:重复定时。
function (): 定时器到时回调函数。
返回值:
如果计时器已启动,则为true,错误时为false
tmr.stop()
功能:停止定时功能。
语法:tmr.stop(id)
参数:
id: 定时器的 id,0~6.
返回值:nil
tmr.stat()
功能:启动或重新启动先前配置的计时器。
语法:tmr.start(id)
参数:
id: 定时器的 id,0~6.
返回值:
如果计时器已启动,则为true,错误时为false
示例:
tmr.alarm(0, 1000, 1, function()         print("hello world")  end )--每秒打印一个“hello world”tmr.stop(0)--停止打印tmr.start(0)--重新开始打印 tmr.wdclr()
功能:清除看门狗计数器。
语法:tmr.wdclr()
参数:nil
返回值:nil
一个长时间的循环或者事务,需内部调用 tmr.wdclr() 清除看门 狗计数器,防止重启。
示例:
for i=0,1000,1 do                print(i)        tmr.wdclr()end
举报

更多回帖

发帖
×
20
完善资料,
赚取积分