一.timer的定义
timer的功能就是定时,在某一时刻启动一个 timer并设定超时时间,超时时间一到,timer就会回调timeout handler,然后执行你需要的工作。
二.timer的时钟来源
时钟来源有两种来源
a.硬件定时器:优点是时间精确,缺点是功耗高。
b.系统滴答时钟:一般为1ms进一次中断,所以定时时间必须大于1ms,优点是功耗低。timer采用的系统的滴答时钟。
Nordic的app timer使用的RTC1也是来自系统的滴答时钟。
三.整体的设计思路
3.1. 初始化系统时钟
配置系统时钟,在中断中配置全局变量,用于时间的比较,具体参考https://blog.csdn.net/qq_36753518/article/details/104657501。
3.2. 定义超时服务函数类型
typedef int (*blt_timer_callback_t)(void);
返回值处理
a、返回值小于0,该任务执行完后会被自动删除,实现单次定时任务。
b、返回值等于0,使用之前的定时时间来定时。
c、返回值大于0,使用该返回值作为新的定时周期,实现可变时长的定时任务。
3.3. timer的结构体
typedef struc