0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

安利给所有人!Air201定时器

合宙LuatOS 来源:合宙LuatOS 作者:合宙LuatOS 2024-12-30 13:35 次阅读

今天特别分享Air201定时器功能实现,感兴趣的朋友们一起探讨。

在Air201模组搭载的LuatOS系统中,定时器(timer)是一项基础且关键的服务。

它允许开发者在特定的时间点或周期性地执行代码段,为物联网设备的运行提供了精确的时间控制。在多种应用场景中都发挥着重要作用,例如:定时发送数据、周期性检查传感器状态等。

Air201最新资料下载

www.air201.cn

wKgZPGdyL2WACRwBAAWEm5fvrMI521.png


本文将通过demo示例,带你了解单次触发定时器和周期性触发定时器的基本功能,以及如何通过定时器回调函数执行特定任务,在实际开发中可根据具体情况灵活应用。

软硬件相关准备工作及最新示例源码下载详见:

https://docs.openluat.com/air201/luatos/app/service/timer

一. 定时器(timer)基本用法

1.1 sys.timerStart

功能说明:

启动一个定时器,该定时器在指定的延迟时间后执行回调函数,或者如果指定了重复次数,则周期性地执行回调函数。

函数原型:

local timerId = sys.timerStart(func, timeout, repeat, arg1, arg2, ..., argN)

相关参数

func:

定时器触发时要执行的回调函数。

timeout:

定时器启动后的延迟时间(以毫秒为单位),即定时器触发前需要等待的时间。

repeat(可选):

指定定时器是否重复触发。如果为0,则定时器只触发一次;如果为正整数,则定时器会重复触发指定的次数;如果为负整数(如-1),则定时器可能表示无限重复(具体取决于LuatOS的实现,但通常-1 用于无限循环)。

arg1, arg2, ..., argN(可选):

传递给回调函数的参数,可以是多个。

示例代码:

wKgZO2dyL42AWngfAAYR1MKxED0013.png

1.2 sys.timerStop

功能说明:

停止一个已启动的定时器。

函数原型:

sys.timerStop(timerId)

相关参数:

timerId:要停止的定时器的唯一标识符。

示例代码:

wKgZO2dyL7CAU04PAABm7N3ZNoA015.png

1.3 sys.timerLoopStart

功能说明:

启动一个周期性定时器,该定时器会按照指定的时间间隔反复执行回调函数。

函数原型:

local timerId = sys.timerLoopStart(func, time

out, arg1, arg2, ..., argN)。

相关参数:

func:

定时器触发时要执行的回调函数。

timeout:

定时器的时间间隔(以毫秒为单位),即每次触发之间的等待时间。

arg1, arg2, ..., argN:

传递给回调函数的参数(可选),可以是多个。

示例代码:

wKgZPGdyL8eAF4kdAAU4V8Ei7HY682.png

1.4 sys.timerStopAll

功能说明:

停止所有由指定回调函数启动的定时器,或者如果没有提供回调函数参数,则停止所有定时器。

函数原型:

sys.timerStopAll([fnc])

相关参数:

fnc(可选):一个回调函数。

如果提供了这个参数,那么只有由这个回调函数启动的定时器会被停止。如果没有提供这个参数,那么所有的定时器都会被停止。

示例代码:

wKgZO2dyL-OAR7CcAANRje3S1_U817.png


二. 定时器(timer)整体演示

2.1 完整示例

wKgZPGdyMBSAMjRzAASz2Tuta3o193.png

2.2 运行结果

wKgZO2dyMDmAWG33AAQTjRVtu88875.pngwKgZPGdyMFiAebTuAAaOszA9U0I169.pngwKgZO2dyMG6AWfJ1AAdvGi1gUyI790.png


三. 定时器应用注意事项

3.1 回调函数执行异常

如果定时器的回调函数中存在异常处理不当的情况,可能会导致程序崩溃或产生不可预知的行为。需要在回调函数中做好异常处理,确保程序的健壮性。

3.2 定时器冲突

在多个定时器同时存在的情况下,可能会存在定时器冲突的问题,即多个定时器同时触发或相互干扰。需要合理设计定时器的触发时间和周期,避免冲突的发生。

3.3 资源占用问题

定时器的创建、启动和停止等操作可能会占用一定的系统资源,如内存、CPU等。在资源受限的嵌入式系统中,需要合理管理定时器的使用,避免资源过度占用。

3.4 定时器ID管理

在使用定时器接口函数时,通常会返回一个定时器ID用于后续操作。如果定时器ID管理不当,可能会导致无法正确停止或删除定时器。需要建立良好的定时器ID管理机制,确保定时器的正确操作。

3.5 定时器重复启动问题

在某些情况下,可能会不小心重复启动同一个定时器,导致多个相同的定时器同时存在。这可能会导致资源浪费或任务重复执行。需要确保定时器的唯一性和正确性。

3.6 定时器的嵌套与递归

嵌套定时器:

在某些情况下,一个定时器的回调函数可能会启动另一个定时器。这种嵌套定时器的使用需要特别小心,以避免无限递归或资源耗尽。

递归定时器:

递归定时器是指一个定时器在其回调函数中重新启动自己。这种用法需要特别注意避免无限循环和堆栈溢出。

3.7 定时器的动态调整

周期调整:

在某些应用中,可能需要动态调整定时器的周期。这通常涉及停止当前定时器并重新启动一个新周期的定时器。

任务优先级调整:

对于某些实时性要求较高的任务,可能需要动态调整定时器的优先级,以确保任务能够及时执行。

今天的内容就分享到这里了~

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5083

    文章

    19133

    浏览量

    305638
  • 物联网
    +关注

    关注

    2909

    文章

    44691

    浏览量

    373891
  • 定时器
    +关注

    关注

    23

    文章

    3250

    浏览量

    114905
收藏 人收藏

    评论

    相关推荐

    合宙Air201资产定位模组LuatOS课程:远程控制

    很多小伙伴已经学习了前两期教程hello world、点灯,对合宙Air201这款低功耗资产定位模组的LuatOS开发已有一定了解,大家的实操反馈是:真的很简单! 那么,这一期我们要一起体验更有
    的头像 发表于 09-14 16:28 1131次阅读
    合宙<b class='flag-5'>Air201</b>资产定位模组LuatOS课程:远程控制

    Air780E/Air780EP/Air780EQ/Air201模块遇到死机问题如何分析

    Air780E/Air780EP/Air780EQ/Air201模块遇到死机问题如何分析简介本文档适用于合宙Air780E、
    的头像 发表于 07-19 15:37 679次阅读
    <b class='flag-5'>Air</b>780E/<b class='flag-5'>Air</b>780EP/<b class='flag-5'>Air</b>780EQ/<b class='flag-5'>Air201</b>模块遇到死机问题如何分析

    Air780E/Air780EP/Air780EQ/Air201模块遇到内存死机如何分析

    Air780E/Air780EP/Air780EQ/Air201模块遇到内存死机如何分析简介本文档适用于合宙Air780E、
    的头像 发表于 07-19 16:07 535次阅读
    <b class='flag-5'>Air</b>780E/<b class='flag-5'>Air</b>780EP/<b class='flag-5'>Air</b>780EQ/<b class='flag-5'>Air201</b>模块遇到内存死机如何分析

    合宙 Air780E/Air780EP/Air780EQ/Air201模块遇到死机问题如何分析

    Air780E/Air780EP/Air780EQ/Air201模块遇到死机问题如何分析简介本文档适用于合宙Air780E、
    的头像 发表于 08-01 17:27 816次阅读
    合宙 <b class='flag-5'>Air</b>780E/<b class='flag-5'>Air</b>780EP/<b class='flag-5'>Air</b>780EQ/<b class='flag-5'>Air201</b>模块遇到死机问题如何分析

    合宙Air201定位模组,千万不要忘记设置这个......

    合宙Air201定位模组,千万不要忘记设置这个:AT+WIFILOC设置wifi定位优先
    的头像 发表于 08-09 18:01 1533次阅读
    合宙<b class='flag-5'>Air201</b>定位模组,千万不要忘记设置这个......

    资产定位 | 合宙Air201模组LuatOS快速入门01-hello world

    合宙的Air201模组,功耗低,品质稳定,购买样品也方便,且资料全开放。
    的头像 发表于 09-13 15:21 417次阅读
    资产定位 | 合宙<b class='flag-5'>Air201</b>模组LuatOS快速入门01-hello world

    合宙Air201资产定位模组LuatOS课程(六):PWRKEY控制解决关机难问题

    ​ 经过前面5期的课程:从hello world初体验,到点灯、远程控制,再到定位,扩展功能,是不是有点上瘾了?合宙Air201,如同我们一路升级打怪的得力法器,让开发愈发得心应手。 本期,我们将
    的头像 发表于 09-18 07:06 457次阅读
    合宙<b class='flag-5'>Air201</b>资产定位模组LuatOS课程(六):PWRKEY控制解决关机难问题

    你要的录音&amp;播放录音功能,直接用!Air201资产定位模组LuatOS快速入门

    ​ 超低功耗、精准定位、快速量产——迷你小巧的合宙Air201,正越来越多的行业客户带来高效开发体验。 此前有小伙伴问:是否支持录音、播放录音功能? 高集成化设计的Air201自带了ES8311
    的头像 发表于 09-27 07:06 289次阅读
    你要的录音&amp;播放录音功能,直接用!<b class='flag-5'>Air201</b>资产定位模组LuatOS快速入门

    Air201:MQTT实用示例的终极指南

    今天我们学习的是关于Air201的MQTT实用示例的终极指南。
    的头像 发表于 11-07 19:30 180次阅读
    <b class='flag-5'>Air201</b>:MQTT实用示例的终极指南

    Air201模组教程:SPI通信与外部Flash的连接之道!

    今天我们要学习的是Air201定位模组LuatOS快速入门,本文将通过Air201+扩展板读写外部flash的演示,教你使用SPI示例,可根据实际需求灵活应用。
    的头像 发表于 11-18 00:23 265次阅读
    <b class='flag-5'>Air201</b>模组教程:SPI通信与外部Flash的连接之道!

    Air201公开但没全公开?你要的资料在这里!

    一些朋友问我Air201开发资料可以公开吗?秉承开源开放的特色,Air201无论是软件还是硬件,可公开的都已公开,并且资料还在持续更新中……
    的头像 发表于 12-04 20:15 175次阅读
    <b class='flag-5'>Air201</b>公开但没全公开?你要的资料在这里!

    深入了解Air201定位模块的电池问题!

    今天主要分享Air201电池相关问题,希望对大家的实际应用开发有所帮助。
    的头像 发表于 12-14 09:32 215次阅读
    深入了解<b class='flag-5'>Air201</b>定位模块的电池问题!

    定位模组Air201——快速实现打电话!

    今天特别分享VoLTE通话功能示例,感兴趣的朋友一起来学。 VoLTE通话功能示例   Air201模组的4G通信功能,通过VoLTE技术实现高清语音通话,支持音频编解码、硅麦输入和喇叭输出。在通话
    的头像 发表于 12-16 15:23 153次阅读
    定位模组<b class='flag-5'>Air201</b>——快速实现打电话!

    定时器已安排!开发小白看过来~

    本文将为您详细介绍Air201定时器的基本操作与设置,确保您轻松上手,包教包会! 在Air201模组搭载的LuatOS系统中,定时器(timer)是一项基础且关键的服务。 它允许开发者
    的头像 发表于 12-31 14:30 52次阅读
    <b class='flag-5'>定时器</b>已安排!开发小白看过来~

    抄作业!看门狗定时器必备知识

    Air201在模组内部集成了硬件看门狗,今天就一起来聊聊~ 本文将带你了解看门狗的工作原理、应用架构、定时时间设置、软硬件看门狗的区别,以及看门狗定时器的典型应用场景及关键设计因素等内容。 同时通过
    的头像 发表于 12-30 14:44 118次阅读
    抄作业!看门狗<b class='flag-5'>定时器</b>必备知识