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

    文章

    3361

    浏览量

    121772
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    单片机定时器中断

    51单片机内部共有两个16位可编程的定时器/计数,即定时器T0和定时器T1。它们既有定时功能又有计数功能。
    发表于 11-24 06:22

    PWM、定时器、SysTick 区别及应用场景

    在单片机和嵌入式开发中,经常会遇到PWM(脉宽调制)、定时器、SysTick(系统滴答定时器)这几个词。很多初学者容易把它们混为一谈,以为都是“定时相关的东西”。其实,它们在本质和应用
    的头像 发表于 11-17 10:53 246次阅读
    PWM、<b class='flag-5'>定时器</b>、SysTick 区别及应用场景

    看门狗定时器、复位源、异常处理机制科普

    的作用、原理与应用。一、看门狗定时器(WatchdogTimer)1.原理看门狗定时器本质上是一个独立定时器,持续倒计时:软件在规定时间内“喂狗”(重置看门狗计数
    的头像 发表于 11-17 10:53 747次阅读
    看门狗<b class='flag-5'>定时器</b>、复位源、异常处理机制科普

    ‌TLC551 LinCMOS™ 定时器芯片技术文档总结

    TLC551 是使用 TI LinCMOS 制造的单片定时电路^TM的^过程。这定时器与 CMOS、TTL 和 MOS 逻辑完全兼容,工作频率高达 2 MHz。与 NE555 定时器相比,该器件由于输入阻抗高,因此使用更小的
    的头像 发表于 09-24 09:16 650次阅读
    ‌TLC551 LinCMOS™ <b class='flag-5'>定时器</b>芯片技术文档总结

    SysTick系统滴答定时器简介

    SysTick—系统定时器是属于CM33内核中的一个外设,内嵌在NVIC中。系统定时器是一个24bit的向下递减的计数,计数每计数一次的时间为 1/SYSCLK,一般我们设置系统时
    的头像 发表于 09-23 09:50 1344次阅读
    SysTick系统滴答<b class='flag-5'>定时器</b>简介

    ‌TPL5010-Q1 纳米功耗系统定时器(带看门狗功能)技术文档摘要

    TPL5010-Q1 Nano 定时器是一款低功耗、符合 AEC-Q100 标准的定时器,带有看门狗 该功能非常适合占空比或电池供电应用中的系统唤醒。在这样的系统中 微控制定时器可用
    的头像 发表于 09-13 10:01 1270次阅读
    ‌TPL5010-Q1 纳米功耗系统<b class='flag-5'>定时器</b>(带看门狗功能)技术文档摘要

    大彩讲堂:VisualHMI-LUA教程-定时器的使用指南

    定时器的使用
    的头像 发表于 08-31 16:59 863次阅读
    大彩讲堂:VisualHMI-LUA教程-<b class='flag-5'>定时器</b>的使用指南

    TPS3435 Nano IQ精密超时看门狗定时器技术解析与应用指南

    Texas Instruments TPS3435/TPS3435-Q1 Nano I~Q~ 精确超时看门狗定时器是一款250nA(典型值)超低功耗器件,具有可编程超时看门狗定时器。该看门狗定时器
    的头像 发表于 08-26 16:20 727次阅读
    TPS3435 Nano IQ精密超时看门狗<b class='flag-5'>定时器</b>技术解析与应用指南

    基于 AS32X601 微控制定时器模块(TIM)技术研究与应用实践

    摘要: 本文全面介绍了国科安芯推出的AS32X601系列微控制定时器模块(TIM),包括其系统架构、功能特性、应用场景以及工程实践要点。通过对芯片的详细分析,揭示了其高性能运行的基础。本文详细
    的头像 发表于 08-19 16:44 606次阅读

    瑞萨RA MCU众测宝典 SysTick之RA0E1定时器点灯

    “ RA MCU众测宝典 ”  SysTick 专题来啦!在上个的 环境搭建 专题中,我们已经筑牢了开发基础,而这次,我们要聚焦一个让程序“有节奏”运行的关键角色—— SysTick定时器 。瑞萨
    的头像 发表于 08-05 14:50 3149次阅读
    瑞萨RA MCU众测宝典  SysTick之RA0E1<b class='flag-5'>定时器</b>点灯

    高电流、高效率电荷泵,具有自动定时器 skyworksinc

    电子发烧友网为你提供()高电流、高效率电荷泵,具有自动定时器相关产品参数、数据手册,更有高电流、高效率电荷泵,具有自动定时器的引脚图、接线图、封装手册、中文资料、英文资料,高电流、高效率电荷泵,具有自动定时器真值表,高电流、高效
    发表于 07-29 18:32
    高电流、高效率电荷泵,具有自动<b class='flag-5'>定时器</b> skyworksinc

    第二十章 TIM——基本定时器

    本章介绍了W55H32基本定时器TIM6、TIM7,16位向上计数,含时钟源、预分频等,讲解定时计算及初始化结构体。
    的头像 发表于 06-20 13:51 913次阅读
    第二十章 TIM——基本<b class='flag-5'>定时器</b>

    第十二章 SysTick——系统定时器

    本章介绍了W55MH32的SysTick系统定时器,它是24位递减计数,含4个寄存,可配置定时、中断,用于产生时基 等。
    的头像 发表于 05-22 17:16 835次阅读
    第十二章 SysTick——系统<b class='flag-5'>定时器</b>

    MCU定时器/计数

    RISC-V核低功耗MCU通过灵活的定时器架构、低功耗模式适配及硬件级中断优化,在工业控制、智能家居等场景中实现高精度计时与能耗控制的协同设计,满足复杂任务调度与实时响应的双重需求‌。 一、‌硬件
    的头像 发表于 04-27 13:54 601次阅读