作者 | firr
本创意项目需要定时进行命令下发,轮询传感器节点,所以本篇记录使用aos_timer的过程。
1、系统定时器介绍
AOS的定时器是基于系统节拍tick作为最基本的时间调度单元即最小时间周期。YoC平台提供这一基本软件定时器功能。CDK项目中,相关功能位于aos pack,其中的README.md列举的API如下所示。有关这些API的进一步说明,可以查看链接:https://yoc.docs.t-head.cn/yocbook/Chapter3-AliOS/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E6%8E%A5%E5%8F%A3/%E5%AE%9A%E6%97%B6%E5%99%A8.html。
图3-1 定时器接口说明
分析API可知,定时器功能需要定义“aos_timer_t”结构体变量,并且都要传递其指针到函数。结构体相关类型定义位于“../PACK/aos/v7.4.3/include/aos/kernel.h”,其实这是一个类型重定义,本质上就是一个空指针类型。
typedef struct {
void *hdl;
} aos_hdl_t;
typedef aos_hdl_t aos_task_t;
typedef aos_hdl_t aos_mutex_t;
typedef aos_hdl_t aos_sem_t;
typedef aos_hdl_t aos_queue_t;
typedef aos_hdl_t aos_