软件定时试验

本文介绍了如何在启航KP_IOT开发主板上进行软件定时试验,包括概述、创建、启动、停止定时器的步骤。软件定时器基于Tick时钟中断,扩展了硬件定时器的功能,支持单次和周期触发。试验中创建了单次和循环定时器,通过串口助手观察运行结果。
摘要由CSDN通过智能技术生成

启航KP_IOT主控板软件定时试验

本示例将演示如何在启航KP_IOT开发主板上进行软件定时试验。

概述

软件定时器是基于系统Tick时钟中断且由软件来模拟的定时器,当经过设定的Tick时钟计数值后会触发用户定义的回调函数。定时精度与系统Tick时钟的周期有关。

  • 硬件定时器受硬件的限制,数量上不足以满足用户的实际需求,因此为了满足用户需求,提供更多的定时器,系统提供软件定时器功能。
  • 软件定时器扩展了定时器的数量,允许创建更多的定时业务。

软件定时器功能支持:

  • 软件定时器创建
  • 软件定时器启动
  • 软件定时器停止
  • 软件定时器删除

运作机制:

  • 软件定时器使用了系统的一个队列和一个任务资源,先进先出。定时时间短的定时器总是比定时时间长的靠近队列头,满足优先被触发的准则。
  • 当Tick中断到来时,在Tick中断处理函数中扫描软件定时器的计时任务,查看是否有定时器超时,如果有,则将超时的定时器记录下来。
  • Tick中断处理函数结束后,软件定时器任务(优先级为高)被唤醒,在该任务中调用之前记录下来的定时器的超时回调函数。

软件定时器提供2类定时器机制:

  • 单次触发定时器:在启动后只会触发一次定时器事件,然后定时器自动删除。
  • 周期触发定时器:会周期性地触发定时器事件,直到用户手动地停止定时器,否则将永远持续执行。

创建定时器

hi_u32 hi_timer_create(hi_u32 *timer_handle); 

参数:

参数名称 描述
timer_handle [IN] type hi_u32,handle.CNcomment:句柄。CNend

启动定时器

hi_u32 hi_timer_start(hi_u32 timer_handle, hi_timer_type type, hi_u32 expire,hi_timer_callback_f timer_func, hi_u32 data);

参数:

参数名称 描述
timer_handle [IN] type hi_u32,handle.CNcomment:句柄。CNend
type [IN] type hi_timer_type,tim
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值