电池电量百分比的计算需要考虑到电池的电压曲线和电量曲线。
电量百分比 = (当前电压值 - 最低电压值)/ (最高电压值 - 最低电压值) * 100%
其中,需考虑电池的实际情况及老化程度进行设定最高/最低电压值,当前电压值为ADC采集值。
u8 i = 0;
int Val = 0; /*暂存ADC采集到的电压值*/
int battery_max = 800; /*电池最高电压值*/
int battery_min = 600; /*电池最低电压值*/
static u8 ValChangeCount = 0; /*电量变化次数*/
static int ValTemp = 0; /*暂存返回电量值*/
const static int Battery_Level_Table[21] = {600, 610, 620, 630, 640, 650, 660, 670,680,690, 700, 710, 720, 730, 740, 750, 760, 770, 780, 790, 800};
int toPercentVal(int Volt)
{
Val = Volt;
for (i=0; i<(sizeof(Battery_Level_Table)/sizeof(Battery_Level_Table[0])); i&