如何使用DUAL TIMER驱动
DUAL TIMER HAL驱动的使用方法如下:
- 声明一个dual_timer_handle_t句柄结构,例如:dual_timer_handle_t dtim_handle。
- 重写hal_dual_timer_base_msp_init()以初始化DUAL
TIMER底层资源。如要使用中断方式的API函数hal_dual_timer_base_start_it()计数,则需通过调用相关的NVIC接口来配置:
- 调用hal_nvic_set_priority()配置DUAL TIMER中断优先级。
- 调用hal_nvic_enable_irq()使能DUAL TIMER中断处理。
- 配置dtim_handle句柄init结构中的计数初值、计数模式、分频系数。
- 调用hal_dual_timer_base_init() API初始化DUAL TIMER外设。
- 如果要使用轮询方式的API函数hal_dual_timer_base_start()计数,开发者需调用hal_dual_timer_get_state()获取当前的驱动运行状态,以判断当前计数是否完成。
- 如果要使用中断方式的API函数hal_dual_timer_base_start_it()计数,开发者需重写hal_dual_timer_period_elapsed_callback()中断回调函数,DUAL TIMER计数完成中断触发时,该回调函数会被自动调用。
- 如果配置的计数模式为单次计数,则计数完成后计数器停止,开发者需要重新初始化DUAL TIMER以启动下次计数;如果配置的计数模式为循环计数,则计数完成后计数器重新加载计数初值,自动开始下次计数。