uint8_t sleep_vbat_batlv_convert(uint16_t v_in_10mV)
{
switch(v_in_10mV)
{
case 330 ... 65535:
return 100;
break;
case 240 ... 329:
return 40+((v_in_10mV-240)*60/90);
break;
case 220 ... 239:
return 20+((v_in_10mV-220)*20/20);
break;
case 200 ... 219:
return 10+((v_in_10mV-200)*10/20);
break;
case 180 ... 199:
return 0+((v_in_10mV-180)*10/20);
break;
case 0 ... 179:
return 0;
break;
}
}
int sleep_check_battery_level(void)
{
int16_t Vpercentage;
uint16_t voltage;
//voltage = AB_ADC_Get_Voltage(VBAT);
voltage = AB_ADC_Get_Voltage(AIO_11);
Vpercentage = sleep_vbat_batlv_convert(voltage);
sleep_bat_vol = voltage;
if((uint8_t)Vpercentage != sleep_vbat)
{
sleep_vbat = (uint8_t)Vpercentage;
}
else
{
}
//DOOR_PRINT("\n VBat = %dmV , Battery Level = %d%%\n\n",voltage*10,Vpercentage);//has a little bug for "%%"!
DOOR_PRINT("\nVBat = %dmV , Battery Level = %d/100\n",voltage*10,Vpercentage);
return voltage*10;
}
{
switch(v_in_10mV)
{
case 330 ... 65535:
return 100;
break;
case 240 ... 329:
return 40+((v_in_10mV-240)*60/90);
break;
case 220 ... 239:
return 20+((v_in_10mV-220)*20/20);
break;
case 200 ... 219:
return 10+((v_in_10mV-200)*10/20);
break;
case 180 ... 199:
return 0+((v_in_10mV-180)*10/20);
break;
case 0 ... 179:
return 0;
break;
}
}
int sleep_check_battery_level(void)
{
int16_t Vpercentage;
uint16_t voltage;
//voltage = AB_ADC_Get_Voltage(VBAT);
voltage = AB_ADC_Get_Voltage(AIO_11);
Vpercentage = sleep_vbat_batlv_convert(voltage);
sleep_bat_vol = voltage;
if((uint8_t)Vpercentage != sleep_vbat)
{
sleep_vbat = (uint8_t)Vpercentage;
}
else
{
}
//DOOR_PRINT("\n VBat = %dmV , Battery Level = %d%%\n\n",voltage*10,Vpercentage);//has a little bug for "%%"!
DOOR_PRINT("\nVBat = %dmV , Battery Level = %d/100\n",voltage*10,Vpercentage);
return voltage*10;
}