启动系统过后,默认输出的相关log如下:
[00:26:30.690]bv:483, bl:9 , check_vbat:0
[00:26:30.701]bv:483, bl:9 , check_vbat:0
[00:27:00.690]bv:479, bl:9 , check_vbat:0
[00:27:00.701]bv:477, bl:9 , check_vbat:0
[00:27:30.690]bv:480, bl:9 , check_vbat:0
[00:27:30.701]bv:481, bl:9 , check_vbat:0
[00:28:00.690]bv:479, bl:9 , check_vbat:0
[00:28:00.701]bv:478, bl:9 , check_vbat:0
从log信息可以看出来,系统默认是30s检测一次电次电压,每次连续测量两次。
要修改电池电压的检测周期,可以修改定义的宏VBAT_PERIOD_CHECK_S的值来改变检测周期。
#define VBAT_PERIOD_CHECK_S (30) //unint:s
void vbat_check_init(void)
{
if (vbat_slow_timer == 0) {
vbat_slow_timer = sys_timer_add(NULL, vbat_check_slow, VBAT_PERIOD_CHECK_S * 1000);
} else {
sys_timer_modify(vbat_slow_timer, VBAT_PERIOD_CHECK_S * 1000);
}
if (vbat_fast_timer == 0) {
vbat_fast_timer = usr_timer_add(NULL, vbat_check, VBAT_DETECT_ADC_MS, 1);
}
}
在初始化电池电压检测的时候,会注册一个定时器,其周期就是上面宏定义的时间。