1.电池检测更新(该计算方式误差也大)
This commit is contained in:
parent
de86887968
commit
b3eeab62bb
|
@ -103,7 +103,30 @@ UINT32 sf_battery_voltage_convert(UINT32 resistanceGnd, UINT32 resistanceVin, UI
|
|||
*/
|
||||
|
||||
//volt = 27 * adcVal * (resistanceGnd + resistanceVin) / resistanceGnd / 511;
|
||||
volt = 27 * adcVal * (resistanceGnd + resistanceVin) / resistanceGnd / 2696;
|
||||
//volt = 27 * adcVal * (resistanceGnd + resistanceVin) / resistanceGnd / 2696;
|
||||
volt = (27 * adcVal + 3097) / 531;
|
||||
return volt;
|
||||
}
|
||||
|
||||
/*************************************************
|
||||
Function: sf_aa_battery_voltage_convert
|
||||
Description: battery voltage convert
|
||||
Input: resistanceGnd:Grounding terminal resistance,resistanceVin:Input resistance,adcVal:adc val
|
||||
Output: N/A
|
||||
Return: Volt * 10
|
||||
Others: N/A
|
||||
*************************************************/
|
||||
UINT32 sf_aa_battery_voltage_convert(UINT32 resistanceGnd, UINT32 resistanceVin, UINT32 adcVal)
|
||||
{
|
||||
UINT32 volt = 0;
|
||||
|
||||
/*511 * (detected voltage) / (SARADC reference voltage)
|
||||
DC input voltage x resistanceGnd/(resistanceGnd + resistanceVin) = detected voltage,
|
||||
SARADC reference voltage:1.8V
|
||||
*/
|
||||
|
||||
//volt = 27 * adcVal * (resistanceGnd + resistanceVin) / resistanceGnd / 511;
|
||||
volt = (27 * adcVal + 554) / 539;
|
||||
return volt;
|
||||
}
|
||||
|
||||
|
@ -112,10 +135,20 @@ UINT32 sf_battery_convert_to_adc(UINT32 resistanceGnd, UINT32 resistanceVin, UIN
|
|||
UINT32 adcVal = 0;
|
||||
|
||||
//adcVal = volt * resistanceGnd * 511 / 27 / (resistanceGnd + resistanceVin);
|
||||
adcVal = volt * resistanceGnd * 2696 / 27 / (resistanceGnd + resistanceVin);
|
||||
//adcVal = volt * resistanceGnd * 2696 / 27 / (resistanceGnd + resistanceVin);
|
||||
adcVal = (volt * 531 - 3097) / 27;
|
||||
return adcVal;
|
||||
}
|
||||
|
||||
UINT32 sf_aa_battery_convert_to_adc(UINT32 resistanceGnd, UINT32 resistanceVin, UINT32 volt)
|
||||
{
|
||||
UINT32 adcVal = 0;
|
||||
|
||||
//adcVal = volt * resistanceGnd * 511 / 27 / (resistanceGnd + resistanceVin);
|
||||
//adcVal = volt * resistanceGnd * 2696 / 27 / (resistanceGnd + resistanceVin);
|
||||
adcVal = (volt * 539 - 554) / 27;
|
||||
return adcVal;
|
||||
}
|
||||
UINT32 sf_get_max_value(UINT32 *_ValueList)
|
||||
{
|
||||
UINT8 readBatCnt = 0;
|
||||
|
@ -320,7 +353,7 @@ UINT32 sf_battery_adc_value_get_once(void)
|
|||
|
||||
if(sf_adc_value_get(SF_ADC_BATT, &batAdc) == SUCCESS)
|
||||
{
|
||||
batVoltageVal = sf_battery_voltage_convert(24, 100, batAdc);
|
||||
batVoltageVal = sf_aa_battery_voltage_convert(24, 100, batAdc);
|
||||
//batVoltageVal += 2;
|
||||
if(puiPara->BatteryLogSwitch)
|
||||
printf("Bat ADC Value:%d After Convert:%d(%d.%dV)\n",batAdc,batVoltageVal,batVoltageVal/10,batVoltageVal%10);
|
||||
|
@ -638,7 +671,7 @@ signed int sf_battery_value_fast_get(void)
|
|||
|
||||
if(puiPara->BatteryLogSwitch)
|
||||
{
|
||||
printf("%s:%d [%d]Other Battery ADC Value=%d,After Convert:%d(%d.%dV)\n", __FUNCTION__, __LINE__, readBatCnt + 1, sf_battery_convert_to_adc(24, 100, batValueList[readBatCnt]),
|
||||
printf("%s:%d [%d]Other Battery ADC Value=%d,After Convert:%d(%d.%dV)\n", __FUNCTION__, __LINE__, readBatCnt + 1, sf_aa_battery_convert_to_adc(24, 100, batValueList[readBatCnt]),
|
||||
batValueList[readBatCnt], batValueList[readBatCnt] / 10, batValueList[readBatCnt] % 10);
|
||||
}
|
||||
}
|
||||
|
@ -844,7 +877,7 @@ void sf_battery_level_polling(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
printf("[average]Other Battery Adc:%d After Convert:(%d.%dV)\n\n", sf_battery_convert_to_adc(24, 100, BatVoltageVal),BatVoltageVal / 10, BatVoltageVal % 10);
|
||||
printf("[average]Other Battery Adc:%d After Convert:(%d.%dV)\n\n", sf_aa_battery_convert_to_adc(24, 100, BatVoltageVal),BatVoltageVal / 10, BatVoltageVal % 10);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -107,7 +107,30 @@ UINT32 sf_battery_voltage_convert(UINT32 resistanceGnd, UINT32 resistanceVin, UI
|
|||
*/
|
||||
|
||||
//volt = 27 * adcVal * (resistanceGnd + resistanceVin) / resistanceGnd / 511;
|
||||
volt = 27 * adcVal * (resistanceGnd + resistanceVin) / resistanceGnd / 2696;
|
||||
//volt = 27 * adcVal * (resistanceGnd + resistanceVin) / resistanceGnd / 2696;
|
||||
volt = (27 * adcVal + 3097) / 531;
|
||||
return volt;
|
||||
}
|
||||
|
||||
/*************************************************
|
||||
Function: sf_aa_battery_voltage_convert
|
||||
Description: battery voltage convert
|
||||
Input: resistanceGnd:Grounding terminal resistance,resistanceVin:Input resistance,adcVal:adc val
|
||||
Output: N/A
|
||||
Return: Volt * 10
|
||||
Others: N/A
|
||||
*************************************************/
|
||||
UINT32 sf_aa_battery_voltage_convert(UINT32 resistanceGnd, UINT32 resistanceVin, UINT32 adcVal)
|
||||
{
|
||||
UINT32 volt = 0;
|
||||
|
||||
/*511 * (detected voltage) / (SARADC reference voltage)
|
||||
DC input voltage x resistanceGnd/(resistanceGnd + resistanceVin) = detected voltage,
|
||||
SARADC reference voltage:1.8V
|
||||
*/
|
||||
|
||||
//volt = 27 * adcVal * (resistanceGnd + resistanceVin) / resistanceGnd / 511;
|
||||
volt = (27 * adcVal + 554) / 539;
|
||||
return volt;
|
||||
}
|
||||
|
||||
|
@ -116,10 +139,19 @@ UINT32 sf_battery_convert_to_adc(UINT32 resistanceGnd, UINT32 resistanceVin, UIN
|
|||
UINT32 adcVal = 0;
|
||||
|
||||
//adcVal = volt * resistanceGnd * 511 / 27 / (resistanceGnd + resistanceVin);
|
||||
adcVal = volt * resistanceGnd * 2696 / 27 / (resistanceGnd + resistanceVin);
|
||||
//adcVal = volt * resistanceGnd * 2696 / 27 / (resistanceGnd + resistanceVin);
|
||||
adcVal = (volt * 531 - 3097) / 27;
|
||||
return adcVal;
|
||||
}
|
||||
UINT32 sf_aa_battery_convert_to_adc(UINT32 resistanceGnd, UINT32 resistanceVin, UINT32 volt)
|
||||
{
|
||||
UINT32 adcVal = 0;
|
||||
|
||||
//adcVal = volt * resistanceGnd * 511 / 27 / (resistanceGnd + resistanceVin);
|
||||
//adcVal = volt * resistanceGnd * 2696 / 27 / (resistanceGnd + resistanceVin);
|
||||
adcVal = (volt * 539 - 554) / 27;
|
||||
return adcVal;
|
||||
}
|
||||
UINT32 sf_get_max_value(UINT32 *_ValueList)
|
||||
{
|
||||
UINT8 readBatCnt = 0;
|
||||
|
@ -349,7 +381,7 @@ UINT32 sf_battery_adc_value_get_once(void)
|
|||
{
|
||||
if(sf_adc_value_get(SF_ADC_BATT, &batAdc) == SUCCESS)
|
||||
{
|
||||
batVoltageVal = sf_battery_voltage_convert(24, 100, batAdc);
|
||||
batVoltageVal = sf_aa_battery_voltage_convert(24, 100, batAdc);
|
||||
//batVoltageVal += 4;
|
||||
if(puiPara->BatteryLogSwitch)
|
||||
printf("Bat ADC Value:%lu After Convert:%lu(%lu.%luV)\n",batAdc,batVoltageVal,batVoltageVal/10,batVoltageVal%10);
|
||||
|
@ -663,7 +695,7 @@ signed int sf_battery_value_fast_get(void)
|
|||
|
||||
if(puiPara->BatteryLogSwitch)
|
||||
{
|
||||
printf("%s:%d [%d]Other Battery ADC Value=%lu,After Convert:%lu(%lu.%luV)\n", __FUNCTION__, __LINE__, readBatCnt + 1, sf_battery_convert_to_adc(24, 100, batValueList[readBatCnt]),
|
||||
printf("%s:%d [%d]Other Battery ADC Value=%lu,After Convert:%lu(%lu.%luV)\n", __FUNCTION__, __LINE__, readBatCnt + 1, sf_aa_battery_convert_to_adc(24, 100, batValueList[readBatCnt]),
|
||||
batValueList[readBatCnt], batValueList[readBatCnt] / 10, batValueList[readBatCnt] % 10);
|
||||
}
|
||||
}
|
||||
|
@ -1692,7 +1724,7 @@ void sf_battery_print(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
printf("Other ADC Value=%lu V:(%lu.%luV)\n", sf_battery_convert_to_adc(24, 100, BatVoltageVal), BatVoltageVal / 10, BatVoltageVal % 10);
|
||||
printf("Other ADC Value=%lu V:(%lu.%luV)\n", sf_aa_battery_convert_to_adc(24, 100, BatVoltageVal), BatVoltageVal / 10, BatVoltageVal % 10);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue
Block a user