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

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

3天内不再提示

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

青山老竹农 来源:jf_82863998 作者:jf_82863998 2024-12-31 14:30 次阅读

本文将为您详细介绍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 定时器的动态调整

周期调整:

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

任务优先级调整:

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

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


审核编辑 黄宇

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

    关注

    23

    文章

    3250

    浏览量

    114914
收藏 人收藏

    评论

    相关推荐

    零基础小白看过来!人工智能到底是学习什么?算法是什么?难不难学?

    ​#人工智能到底是学什么?#以豆包、ChatGPt、文心一言、通义千问为代表的大模型;以百度、华为、特斯拉、蔚小理为代表的自动驾驶;以讯飞、百度为代表的语音识别技术,以及手机上的人脸识别等等,都依托于人工智能技术。可见人工智能是个广义的学科,涉及基础层、技术层、应用层的技术,它们共同构成了人工智能的全貌。人工智能的学习,核心是技术层和应用层的学习,技术层核心
    的头像 发表于 08-20 16:54 505次阅读
    零基础<b class='flag-5'>小白看过来</b>!人工智能到底是学习什么?算法是什么?难不难学?

    定时器的工作方式介绍

    定时器是计算机和嵌入式系统中常见的一种硬件模块,用于实现定时和计数功能。定时器的工作方式通常由一组寄存来控制,这些寄存定义了
    的头像 发表于 07-12 10:29 1009次阅读

    定时器相关的寄存有哪些类型

    在微控制编程中,定时器是一种非常常见的功能模块,用于实现各种定时和计数功能。定时器的工作原理是通过内部的计数来跟踪时间的流逝,当计数
    的头像 发表于 07-12 10:25 971次阅读

    如何在PSOC创建者项目中确认看门狗定时器启用?

    您好,我是 PSOC BLE 部件的新手,只有一项任务,即确认看门狗定时器是否正确启用并按需要工作。我是 PSOC Creator 的新用户。如有任何帮助,将不胜感激。如何在 PSOC 创建者项目中确认看门狗定时器启用?
    发表于 07-02 07:10

    鸿蒙开发系统基础能力:Timer定时器

    设置一个定时器,该定时器定时器到期后执行一个函数。
    的头像 发表于 06-28 11:33 1015次阅读
    鸿蒙<b class='flag-5'>开发</b>系统基础能力:Timer<b class='flag-5'>定时器</b>

    如何实现一个软件定时器

    在Linux,uC/OS,FreeRTOS等操作系统中,都带有软件定时器,原理大同小异。典型的实现方法是:通过一个硬件定时器产生固定的时钟节拍,每次硬件定时器中断到,就对一个全局的时间标记加一,每个软件
    的头像 发表于 04-29 11:00 677次阅读

    s7200定时器的五种故障介绍

    定时器或CPU故障:如果定时器本身或PLC的CPU出现故障,也可能导致定时器无法复位。此时,需要检查定时器和CPU的工作状态,确保其正常运行。
    的头像 发表于 04-03 17:08 2525次阅读

    ​PLC保持型通电延时定时器TONR

    TONR指令用于积累许多时间间隔。当定时器的输入端IN为ON时,定时器开始计时,当定时器的当前值大于等于设定值时,定时器被置位,其常开触点闭合,常闭触点断开。
    发表于 03-31 09:13 1125次阅读
    ​PLC保持型通电延时<b class='flag-5'>定时器</b>TONR

    ​PLC定时器介绍

    定时器是PLC中重要的编程元件,是累计时间增量的内部器件。大部分自动控制领域都需要定时器进行延时控制,灵活地使用定时器可以编制出复杂的控制程序。
    发表于 03-22 12:36 2425次阅读
    ​PLC<b class='flag-5'>定时器</b>介绍

    使用555定时器的可调双定时器电路

    定时器 IC 555 是最通用和最常用的 IC 之一,因为它的应用范围更广,如 PWM放大器、延迟定时器、开关电路、占空比选择、时钟脉冲发生等。这也可用于各种应用,如精确
    的头像 发表于 02-25 15:16 2266次阅读
    使用555<b class='flag-5'>定时器</b>的可调双<b class='flag-5'>定时器</b>电路

    定时器原理能控制马达吗为什么

    定时器原理可以用于控制马达。马达是一种将电能转换为机械能的设备,通常由电动机和传动装置组成。定时器是一种电子设备,用来生成和计时精确而稳定的时间信号。通过将定时器与马达控制电路相连,可以实现对马达
    的头像 发表于 01-23 15:21 679次阅读

    GD32 Timer定时器周期时间计算公式

    有小伙伴反馈GD32 Timer定时器的周期时间不知如何计算,今天就来安排
    的头像 发表于 01-22 09:53 2745次阅读
    GD32 Timer<b class='flag-5'>定时器</b>周期时间计算公式

    555定时器的基本功能 555定时器的工作原理及其应用

    555定时器是一种非常常见和常用的集成电路,它具有广泛的应用领域,例如计时、频率分频、脉冲宽度调制等。本文将详细介绍555定时器的基本功能、工作原理以及应用。 一、555定时器的基本功能 555
    的头像 发表于 01-18 11:12 1.5w次阅读

    AWTK 开源串口屏开发(6) - 定时器的用法

    定时器是个常用的功能,AWTK串口屏提供了丰富的定时器函数,用于定时器的启动、停止、暂停、恢复、修改和重置等功能,本文以计时的例子来介绍定时器
    的头像 发表于 01-13 08:24 586次阅读
    AWTK 开源串口屏<b class='flag-5'>开发</b>(6) - <b class='flag-5'>定时器</b>的用法

    AT32 定时器配置中pr和div的作用

    AT32定时器是51系列单片机中的一种定时器,可以实现多种定时功能。在AT32定时器中,pr和div是两个相关的参数,用于配置定时器的工作参
    的头像 发表于 01-08 10:12 1335次阅读