完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
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 |
|
|
|
只有小组成员才能发言,加入小组>>
3284 浏览 9 评论
2960 浏览 16 评论
3464 浏览 1 评论
9008 浏览 16 评论
4054 浏览 18 评论
1127浏览 3评论
579浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
573浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2306浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1864浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 05:02 , Processed in 1.097810 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号