更新时间:2024-11-20 08:51:24下载pdf
函数名称 | 功能描述 |
---|---|
hardware_timer_enable | 启动定时器 |
timer_hardware_start_with_id | 创建定时器 |
timer_hardware_stop_100us | 取消定时器 |
dev_current_millisecond_ticks_get | 获取当前系统时钟ticks(ms) |
函数原型
void hardware_timer_enable(void);
函数原型
void timer_hardware_start_with_id(TIMER_ID_T i, uint32_t t, TIMER_RELOAD_FLAG_T flag, hardware_timer_func_t func);
参数说明
参数名称 | 参数类型 | 说明 |
---|---|---|
i | TIMER_ID_T | TIMER_ID_T 枚举中的值 |
flag | TIMER_RELOAD_FLAG_T | TIMER_RELOAD_FLAG_T 枚举中的值,只是否重载定时器 |
func | hardware_timer_func_t | 回调函数 |
函数原型
void timer_hardware_stop_100us(TIMER_ID_T id);
参数说明
参数名称 | 参数类型 | 说明 |
---|---|---|
id | TIMER_ID_T | TIMER_ID_T 枚举中的值 |
函数原型
uint32_t dev_current_millisecond_ticks_get(void);
参数说明
参数名称 | 参数类型 | 说明 |
---|---|---|
id | TIMER_ID_T | TIMER_ID_T 枚举中的值 |
本节介绍 Systick Timer 的使用方法, hal_systick_timer.h 有详细的接口定义,下面是 Systick Timer 的使用例子:
void __hardware_timer_func_t(TIMER_ID_T timer_id)
{
static uint8_t test_times = 100;
switch(timer_id) {
case V_TIMER0: { ///< 1000ms 调用一次, 周期进来
if((--test_times) == 0) {
timer_hardware_stop_100us(timer_id); ///< 执行100次后关闭
}
if(timer_hardware_is_active(timer_id)) {
//TODO: 定时有效
}
else {
//TODO: 定时器无效
}
//TODO:
break;
}
case V_TIMER1: { ///< 500ms 调用一次,一次性
break;
}
}
}
static void systick_timer_demo()
{
hardware_timer_enable();
timer_hardware_start_with_id(V_TIMER0, 10000, HARDWARE_TIMER_AUTO_RELOAD_ENABLE, __hardware_timer_func_t);
timer_hardware_start_with_id(V_TIMER1, 5000, HARDWARE_TIMER_AUTO_RELOAD_DISABLE, __hardware_timer_func_t);
}
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈