PB03定时器简单应用

[复制链接]
查看556 | 回复0 | 2024-10-29 09:31:28 | 显示全部楼层 |阅读模式
PB03共有6个硬件TIMER,其中4个已经被协议栈、OSAL调度器等软件资源所使用,只能使用剩下的两个定时器TIMER5TIMER6
Timer 中断产生后不会自动停止,而是自动装载数据进行下一次计数,如此反复。如需要将其停止,可手动将其关闭。
当开启休眠模式时,休眠后TIMER信息会丢失,唤醒后需要重新配置。
定时器的基本函数介绍:
int hal_timer_init(ap_tm_hdl_t callback)
用于初始化定时器并设定定时器的中断回调函数

int hal_timer_set(User_Timer_e timeId,uint32_t us)
设置定时器的定时时间
timeId –指定的定时器
us—定时时间单位微秒

int hal_timer_mask_int(User_Timer_e timeId,bool en)
屏蔽或使能定时器中断
timeId –指定的定时器
en true 表示使能中断,为 false 表示屏蔽中断。

int hal_timer_stop(User_Timer_e timeId)
停止对应的定时器运行
代码示例:
配置定时器5每500毫秒中断一次
  1. Timer初始化
  2. hal_timer_init(timer_callback);
  3. hal_timer_set(AP_TIMER_ID_5, 1000 * 500);//500ms
复制代码
中断回调函数
  1. void timer_callback(uint8_t evt) {
  2.         switch(evt)
  3.         {
  4.                 case HAL_EVT_TIMER_5:
  5.                         LOG("Time5_interrupt\n");       
  6.                 break;

  7.                 case HAL_EVT_TIMER_6:
  8.                 break;
  9.         }
  10. }
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则