RTOS_TIMER使用参考
REVISION HISTORY¶
Revision No. | Description |
Date |
---|---|---|
1.0 | Initial release | 01/29/2024 |
1. 概述¶
TIMER - 硬件定时器,其主要功能为计数,可以定时或周期性地触发中断,在中断处理函数中实现自定义的功能。
2. RTOS用法介绍¶
2.1 DRIVER PATH¶
sc/driver/sysdriver/timer/drv/src/drv_timer.c sc/driver/sysdriver/timer/drv/pub/drv_timer_api.h sc/driver/sysdriver/timer/hal/common/src/hal_timer.c sc/driver/sysdriver/timer/hal/common/pub/hal_timer.h sc/driver/sysdriver/timer/hal/common/pub/hal_reg_timer.h
2.2 CONFIG配置¶
#make menuconfig BSP Driver Options ---> [*] Support PM timer driver
2.3 API说明¶
头文件位于sc/driver/sysdriver/timer/drv/pub/drv_timer_api.h
2.3.1. 回调函数¶
-
功能
中断回调函数
-
语法
typedef void (*PfnTimerIntcISR)(void);
2.3.2. DrvTimerOstickStop¶
-
功能
用于停止定时器
-
语法
void DrvTimerOstickStop(void);
2.3.3. DrvTimerOstickRun¶
-
功能
用于启动定时器
-
语法
void DrvTimerOstickRun(u32 tick);
-
参数
参数名称 描述 tick 定时器超时时钟数(12MHz)
2.3.4. DrvTimerOstickGetCount¶
-
功能
用于获取定时器时钟数
-
语法
u32 DrvTimerOstickGetCount(void)
-
返回值
返回值 描述 返回时钟数 返回时钟数
2.3.5. DrvTimerOstickIntClear¶
-
功能
用于清除定时器中断
-
语法
void DrvTimerOstickIntClear(void)
2.3.6. DrvTimerOstickIntFlag¶
-
功能
用于获取定时器中断标志位
-
语法
u32 DrvTimerOstickIntFlag(void)
-
返回值
返回值 描述 0 中断未触发 1 中断已经触发
2.3.7. DrvTimerOsTickIsrReg¶
-
功能
用于注册定时器中断处理函数
-
语法
void DrvTimerOsTickIsrReg(PfnTimerIntcISR pfnOstickTimerISR)
-
参数
参数名称 描述 pfnOstickTimerISR 定时器中断处理函数
2.3.8. DrvTimerOsTickIsrRel¶
-
功能
用于注销定时器中断
-
语法
void DrvTimerOsTickIsrRel(void)
2.3.9. DrvTimerGlobalTimerGet64BitTick¶
-
功能
用于获取64位的时钟数
-
语法
u64 DrvTimerGlobalTimerGet64BitTick(void)
-
返回值
结果 描述 返回时钟数 返回时钟数
2.4 DEMO¶
定时器使用范例如下:
/* * 定义回调函数 */ static void timer_isr_handle(void) { if (DrvTimerOstickIntFlag()) { DrvTimerOstickIntClear(); /* * 增加业务逻辑 */ // do something } } DrvTimerOsTickIsrReg(timer_isr_handle); DrvTimerOstickRun(10*12000); // 10ms