2.4.1. 系统定时器

系统定时器(又名:软件定时器)。

2.4.1.1. sys_timer_add

功能: 添加系统非timeout类型定时任务。
  • 1、sys_timer由tick timer提供时基,属于同步接口,当定时时间到时,sys_timer模块,会发送call event,通知主函数进行回调函数处理,主循环调用sys_event_get接口时,内部会拦截call event进行函数调用(callback)

  • 2、与sys_timer_del成对使用。

u16 sys_timer_add(void *priv, void (*func)(void *priv), u32 msec);

参数:

priv

定时任务处理函数的输入参数

func

定时任务处理函数

msec

定时时间

返回值

定时器分配的ID

示例:

void timer_callback(void *p) {
    //TODO
}

u16 id = sys_timer_add(NULL, timer_callback, 10);

2.4.1.2. sys_timer_del

功能: 删除ms级非timeout类型定时任务。

void sys_timer_del(u16);

参数:

id

要删除的任务ID

返回值

void

示例:

sys_timer_del(id);

2.4.1.3. sys_timeout_add

功能: 添加ms级系统timeout类型定时任务。
  • 1、sys_timer由tick timer提供时基,属于同步接口,当定时时间到时,sys_timer模块,会发送call event,通知主函数进行回调函数处理,主循环调用sys_event_get接口时,内部会拦截call event进行函数调用(callback)

  • 2、timeout回调只会被执行一次;

  • 3、与sys_timerout_del成对使用。

u16 sys_timeout_add(void *priv, void (*func)(void *priv), u32 msec);

参数:

priv

定时任务处理函数的输入参数

func

定时任务处理函数

msec

定时时间

返回值

定时器分配的ID

示例:

void timeout_callback(void *p) {
    //TODO
}

u16 id = sys_timeout_add(NULL, timeout_callback, 10);

2.4.1.4. sys_timeout_del

功能: 删除ms级timeout类型定时任务。

void sys_timeout_del(u16);

参数:

id

要删除的任务ID

返回值

void

示例:

sys_timeout_del(id);

2.4.1.5. sys_timer_modify

功能: 修改ms级定时任务定时时间。

int sys_timer_modify(u16 id, u32 msec);

参数:

id

要获取处理函数的输入参数值的任务ID。

msec

定时时间

返回值

NULL

示例:

sys_timer_modify(id, 10);

2.4.1.6. sys_timer_dump

功能: sys_time输出调试信息。

void sys_timer_dump(void);

参数:

返回值

NULL

示例:

sys_timer_dump();