1.Linux下电池检测调整
This commit is contained in:
parent
279907d8f8
commit
2b7af14a19
|
@ -212,7 +212,7 @@ UINT32 sf_adc_value_get(UINT32 mux, UINT32 *pval)
|
||||||
{
|
{
|
||||||
static UINT8 getAdcFlg = 0;
|
static UINT8 getAdcFlg = 0;
|
||||||
//static UINT8 outputflag = 1;
|
//static UINT8 outputflag = 1;
|
||||||
UINT32 adc_device_delay_time_ms = 100;
|
UINT32 adc_device_delay_time_ms = 20;
|
||||||
*pval = 0;
|
*pval = 0;
|
||||||
|
|
||||||
if(getAdcFlg)
|
if(getAdcFlg)
|
||||||
|
@ -349,7 +349,7 @@ UINT32 sf_battery_adc_value_get_once(void)
|
||||||
UINT32 liPolymerVoltageVal = 0;
|
UINT32 liPolymerVoltageVal = 0;
|
||||||
UINT32 batVoltageVal = 0;
|
UINT32 batVoltageVal = 0;
|
||||||
static UINT8 getBatAdcFlg = 0;
|
static UINT8 getBatAdcFlg = 0;
|
||||||
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
|
// UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
|
||||||
|
|
||||||
if(getBatAdcFlg)
|
if(getBatAdcFlg)
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
|
@ -361,8 +361,8 @@ UINT32 sf_battery_adc_value_get_once(void)
|
||||||
{
|
{
|
||||||
dcVoltageVal = sf_battery_voltage_convert(24, 100, batAdc);
|
dcVoltageVal = sf_battery_voltage_convert(24, 100, batAdc);
|
||||||
//dcVoltageVal += 2;
|
//dcVoltageVal += 2;
|
||||||
if(puiPara->BatteryLogSwitch)
|
// if(puiPara->BatteryLogSwitch)
|
||||||
printf("DC ADC Value:%d After Convert:%d(%d.%dV)\n",batAdc,dcVoltageVal,dcVoltageVal/10,dcVoltageVal%10);
|
// printf("DC ADC Value:%d After Convert:%d(%d.%dV)\n",batAdc,dcVoltageVal,dcVoltageVal/10,dcVoltageVal%10);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -370,8 +370,8 @@ UINT32 sf_battery_adc_value_get_once(void)
|
||||||
{
|
{
|
||||||
liPolymerVoltageVal = sf_battery_voltage_convert(24, 100, batAdc);
|
liPolymerVoltageVal = sf_battery_voltage_convert(24, 100, batAdc);
|
||||||
//liPolymerVoltageVal += 2;
|
//liPolymerVoltageVal += 2;
|
||||||
if(puiPara->BatteryLogSwitch)
|
// if(puiPara->BatteryLogSwitch)
|
||||||
printf("Li ADC Value:%d After Convert:%d(%d.%dV)\n",batAdc,liPolymerVoltageVal,liPolymerVoltageVal/10,liPolymerVoltageVal%10);
|
// printf("Li ADC Value:%d After Convert:%d(%d.%dV)\n",batAdc,liPolymerVoltageVal,liPolymerVoltageVal/10,liPolymerVoltageVal%10);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -379,15 +379,15 @@ UINT32 sf_battery_adc_value_get_once(void)
|
||||||
{
|
{
|
||||||
batVoltageVal = sf_aa_battery_voltage_convert(24, 100, batAdc);
|
batVoltageVal = sf_aa_battery_voltage_convert(24, 100, batAdc);
|
||||||
//batVoltageVal += 2;
|
//batVoltageVal += 2;
|
||||||
if(puiPara->BatteryLogSwitch)
|
// if(puiPara->BatteryLogSwitch)
|
||||||
printf("Bat ADC Value:%d After Convert:%d(%d.%dV)\n",batAdc,batVoltageVal,batVoltageVal/10,batVoltageVal%10);
|
// printf("Bat ADC Value:%d After Convert:%d(%d.%dV)\n",batAdc,batVoltageVal,batVoltageVal/10,batVoltageVal%10);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(sf_adc_value_get(SF_ADC_TEMP, &batAdc) == SUCCESS)
|
if(sf_adc_value_get(SF_ADC_TEMP, &batAdc) == SUCCESS)
|
||||||
{
|
{
|
||||||
_TemperAdc = batAdc;
|
_TemperAdc = batAdc;
|
||||||
if(puiPara->BatteryLogSwitch)
|
// if(puiPara->BatteryLogSwitch)
|
||||||
printf("_TemperAdc:%d \n",batAdc);
|
// printf("_TemperAdc:%d \n",batAdc);
|
||||||
}
|
}
|
||||||
|
|
||||||
_DcVoltageVal = dcVoltageVal;
|
_DcVoltageVal = dcVoltageVal;
|
||||||
|
@ -768,45 +768,61 @@ SINT32 sf_battery_adc_value_get(void)
|
||||||
|
|
||||||
UINT32 dcTemp = 0;
|
UINT32 dcTemp = 0;
|
||||||
UINT32 batTemp = 0;
|
UINT32 batTemp = 0;
|
||||||
UINT32 dcValueList = { 0 };
|
UINT32 LibatTemp = 0;
|
||||||
UINT32 batValueList = { 0 };
|
UINT8 LibatCnt = 0;
|
||||||
|
UINT8 batCnt = 0;
|
||||||
|
UINT32 temperValue = 0;
|
||||||
|
|
||||||
//SINT32 ret = FAIL;
|
//SINT32 ret = FAIL;
|
||||||
|
|
||||||
//uiPara_t * puiPara = appUiParaGet();
|
//uiPara_t * puiPara = appUiParaGet();
|
||||||
|
|
||||||
for(readBatCnt = 0; readBatCnt < 10;) //get average value of 10 times.
|
for(readBatCnt = 0; readBatCnt < 5;) //get average value of 10 times.
|
||||||
{
|
{
|
||||||
if(sf_battery_adc_value_get_once() == SUCCESS)
|
if(sf_battery_adc_value_get_once() == SUCCESS)
|
||||||
{
|
{
|
||||||
dcValueList = _DcVoltageVal;
|
dcTemp += _DcVoltageVal;
|
||||||
|
temperValue += _TemperAdc;
|
||||||
if(_LiPolymerVoltageVal)
|
if(_LiPolymerVoltageVal)
|
||||||
{
|
{
|
||||||
batValueList = _LiPolymerVoltageVal;
|
LibatTemp += _LiPolymerVoltageVal;
|
||||||
|
LibatCnt++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
batValueList = _BatVoltageVal;
|
batTemp += _BatVoltageVal;
|
||||||
|
batCnt++;
|
||||||
}
|
}
|
||||||
|
|
||||||
dcTemp += dcValueList;
|
|
||||||
batTemp += batValueList;
|
|
||||||
|
|
||||||
readBatCnt++;
|
readBatCnt++;
|
||||||
|
|
||||||
sf_sleep_ms(100);
|
//sf_sleep_ms(10);
|
||||||
if(readBatCnt >= SF_READ_BAT_MAX)
|
if(readBatCnt >= 5)
|
||||||
{
|
{
|
||||||
_DcVoltageVal = dcTemp / SF_READ_BAT_MAX;
|
_DcVoltageVal = dcTemp / 5;
|
||||||
|
_TemperAdc = temperValue/ 5;
|
||||||
|
|
||||||
if(_LiPolymerVoltageVal)
|
if(LibatCnt)
|
||||||
|
_LiPolymerVoltageVal = LibatTemp / LibatCnt;
|
||||||
|
if(batCnt)
|
||||||
|
_BatVoltageVal = batTemp / batCnt;
|
||||||
|
|
||||||
|
if((_DcVoltageVal > _LiPolymerVoltageVal) && (_DcVoltageVal >= _BatVoltageVal) && (_DcVoltageVal >= SF_DC_IN_VOLATAGE))
|
||||||
{
|
{
|
||||||
_LiPolymerVoltageVal = batTemp / SF_READ_BAT_MAX;
|
IsPowerDcIn = 1;
|
||||||
}
|
}
|
||||||
else if(_BatVoltageVal)
|
else
|
||||||
{
|
{
|
||||||
_BatVoltageVal = batTemp / SF_READ_BAT_MAX;
|
IsPowerDcIn = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((_LiPolymerVoltageVal > _BatVoltageVal))
|
||||||
|
{
|
||||||
|
_BatVoltageVal = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_LiPolymerVoltageVal = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -842,7 +858,7 @@ void sf_battery_level_polling(void)
|
||||||
{
|
{
|
||||||
if(sf_battery_adc_value_get() == SUCCESS)
|
if(sf_battery_adc_value_get() == SUCCESS)
|
||||||
{
|
{
|
||||||
//sf_sleep_ms(100);
|
sf_sleep_ms(100);
|
||||||
|
|
||||||
dcTemp += _DcVoltageVal;
|
dcTemp += _DcVoltageVal;
|
||||||
temperValue += _TemperAdc;
|
temperValue += _TemperAdc;
|
||||||
|
@ -1097,7 +1113,7 @@ void sf_view_osd_battery_draw(UINT8 bShow)
|
||||||
UINT8 sf_battery_value_get(UINT8 nightMode)
|
UINT8 sf_battery_value_get(UINT8 nightMode)
|
||||||
{
|
{
|
||||||
UINT8 value = 0;
|
UINT8 value = 0;
|
||||||
UINT8 batteryVal = 0;
|
UINT32 batteryVal = 0;
|
||||||
|
|
||||||
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
|
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
|
||||||
if(IsPowerDcIn == 0)
|
if(IsPowerDcIn == 0)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user