DA14683的定时器操作
勤基科技 陈杰明
接口位置
打开开发环境,导入pxp_reporter工程,找到如下位置:pxp_report->sdk->peripherals->src,在这个代码目录下,我们打开time相关的C文件 。
以timer0为例,可以看到这个timer0的初始化函数。
在hw_timer0_init函数中,出了最后调用的hw_timer0_configure函数是初始化定时器的接口以外,其他的语句都是reset定时器相关的寄存器。
再看以下函数:
我们注册定时器中断函数的时候可以调用hw_timer0_register_int接口,如果在使用过程中要取消定时器中断函数,就调用hw_timer0_unregister_int接口。形参只需要传入用户定义的函数即可。
参数设置
当我们在调用hw_timer0_init这个函数初始化定时器的时候,需要传入一个结构体形参cfg,这个形参最终是传给了以下函数:
然后再看看cfg结构体需要如何定义:
在hw_timer0.h里面可以找到相关结构体定义方法,具体用法后面都有英文注释。用户可以自行去.h文件里面查阅。
应用
首先初始化cfg参数
Timer0_config cfg_timer0 = {
.clk_src = HW_TIMER0_CLK_SRC_FAST,
.fast_clk_div = HW_TIMER0_FAST_CLK_DIV_1,
.on_clock_div = false,
.on_reload = 0,
.t0_reload_m = 500,
.t0_reload_m = 500,
};
viod timer0_user_handler()
{
//add your code
}
hw_timer0_init(cfg_timer0);
hw_timer0_register_int(timer0_user_handler);
以上就是
定时器0的初始化方法,timer1,Timer2配置方法类似。详细的配置方法可参考peripherals_demo这个例程。
Dialog技术讨论,QQ群871600668