static battery_info_t current_battery_info={0};
+static uint8_t cur_percent = 0;
+
void battery_percent_init(uint8_t percent)
{
history_percent = percent;
// osal_printk("battery ntc temp value1 %.4f value2 %.4f\r\n",ret,temp_value);
return temp_value;
}
+
+static uint8_t battery_get_power_percentage(void)
+{
+ uint8_t percent = cur_percent;
+ return percent;
+}
+
/**
* 输入电池电压值
* 根据 battery_percent_map 计算并返回 电池电量百分比
* 返回值 0~100
*/
-static int battery_get_power_percentage(float voltage)
+static int battery_get_percent_by_voltage(float voltage)
{
uint32_t current_time = 0;
int percent = 0;
percent = history_percent;
break;
}
+ //电量均匀增加
+ else if(percent > history_percent)
+ {
+ history_percent++;
+ percent = history_percent;
+ PRINT("charge percent[%d], history_percent[%d] \n",percent,history_percent);
+ break;
+ }
}
else
{
percent = history_percent;
break;
}
+ //电量均匀减少
+ else if(history_percent > percent)
+ {
+ history_percent--;
+ percent = history_percent;
+ PRINT("uncharge percent[%d], history_percent[%d] \n",percent,history_percent);
+ break;
+ }
}
{
*voltage = adc_trans_systick_to_battery_voltage(stick);
get_avg_voltage(voltage);
+ cur_percent = battery_get_percent_by_voltage(*voltage);
+ PRINT("cur_percent : %d , history_percent : %d \n",cur_percent,history_percent);
}
else if (channel == 0){
*voltage = adc_trans_systick_to_battery_ntc(stick);
uint8_t percent = 0;
battery_info_t *current_battery_info = get_current_battery_info();
- percent = battery_get_power_percentage(current_battery_info->battery_voltage);
+ percent = battery_get_power_percentage();
*voltage = current_battery_info->battery_voltage;
return percent;