发帖
2 0 0

PB03定时器简单应用

东东3
金牌会员

11

主题

23

回帖

1244

积分

金牌会员

积分
1244
PB&TG系列 1348 2 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. }
复制代码


──── 0人觉得很赞 ────

使用道具 举报

没有使用osal吗?
2025-1-16 14:41:43

用不用都是一样配置一下就行
您需要登录后才可以回帖 立即登录
高级模式
返回
统计信息
  • 会员数: 28254 个
  • 话题数: 40216 篇