nrf52832学习-app_timer模块

发布时间 2023-06-18 16:45:30作者: 追逐time

简单使用:

  1. app_timer是模块,使用时需要在sdk_config.h文件中将其使能
  2. 添加头文件app_timer.h
  3. 定义 Timer 定时器唯一识别号 _my_timer_id 和需要的定时时间常量 MY_TIMER_INTERVAL
    APP_TIMER_DEF( _my_timer_id );
    #define MY_TIMER_INTERVAL APP_TIMER_TICKS( _milliseconds ) // milliseconds 单位是毫秒
  4. 初始化定时器
    err_code = app_timer_init();
  5. 根据定时器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) { ... }
  6. 启动定时器
    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);