简单使用:
- app_timer是模块,使用时需要在sdk_config.h文件中将其使能
- 添加头文件app_timer.h
- 定义 Timer 定时器唯一识别号 _my_timer_id 和需要的定时时间常量 MY_TIMER_INTERVAL
APP_TIMER_DEF( _my_timer_id );
#define MY_TIMER_INTERVAL APP_TIMER_TICKS( _milliseconds ) // milliseconds 单位是毫秒 - 初始化定时器
err_code = app_timer_init(); - 根据定时器id注册该定时器
err_code = app_timer_create(&_my_timer_id, mode, my_timeout_handler);
参数 mode 有两个选项值: APP_TIMER_MODE_SINGLE_SHOT (动作一次)
APP_TIMER_MODE_REPEATED(重复动作);
参数 my_timeout_handler: 当前定时器 time-out 时对应的处理函数;
处理函数格式:void my_timeout_handler(void * p_context) { ... } - 启动定时器
err_code = app_timer_start(_my_timer_id, MY_TIMER_INTERVAL, NULL);
函数 app_timer_start 第三个参数是 void * p_context, 如没有返回值,则为 NULL;
部分使用api
- ret_code_t app_timer_stop(app_timer_id_t timer_id);
- ret_code_t app_timer_stop_all(void);
- void app_timer_resume(void);
- void app_timer_pause(void);
- uint8_t app_timer_op_queue_utilization_get(void);
- uint32_t app_timer_cnt_diff_compute(uint32_t ticks_to,uint32_t ticks_from );
- uint32_t app_timer_cnt_get(void);
- uint32_t app_timer_cnt_diff_compute(uint32_t ticks_to,uint32_t ticks_from);