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 outputflag = 1;
 | ||||
| 	UINT32 adc_device_delay_time_ms = 100; | ||||
| 	UINT32 adc_device_delay_time_ms = 20; | ||||
|     *pval = 0; | ||||
| 
 | ||||
| 	if(getAdcFlg) | ||||
|  | @ -349,7 +349,7 @@ UINT32 sf_battery_adc_value_get_once(void) | |||
| 	UINT32 liPolymerVoltageVal = 0; | ||||
| 	UINT32 batVoltageVal = 0; | ||||
| 	static UINT8 getBatAdcFlg = 0; | ||||
| 	UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); | ||||
| 	// UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
 | ||||
| 
 | ||||
| 	if(getBatAdcFlg) | ||||
| 		return SUCCESS; | ||||
|  | @ -361,8 +361,8 @@ UINT32 sf_battery_adc_value_get_once(void) | |||
| 	{ | ||||
|         dcVoltageVal = sf_battery_voltage_convert(24, 100, batAdc); | ||||
|         //dcVoltageVal += 2;
 | ||||
|         if(puiPara->BatteryLogSwitch) | ||||
| 		    printf("DC ADC Value:%d After Convert:%d(%d.%dV)\n",batAdc,dcVoltageVal,dcVoltageVal/10,dcVoltageVal%10); | ||||
|         // if(puiPara->BatteryLogSwitch)
 | ||||
| 		//     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 += 2;
 | ||||
|         if(puiPara->BatteryLogSwitch) | ||||
| 		    printf("Li ADC Value:%d After Convert:%d(%d.%dV)\n",batAdc,liPolymerVoltageVal,liPolymerVoltageVal/10,liPolymerVoltageVal%10); | ||||
|         // if(puiPara->BatteryLogSwitch)
 | ||||
| 		//     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 += 2;
 | ||||
|         if(puiPara->BatteryLogSwitch) | ||||
| 		    printf("Bat ADC Value:%d After Convert:%d(%d.%dV)\n",batAdc,batVoltageVal,batVoltageVal/10,batVoltageVal%10); | ||||
|         // if(puiPara->BatteryLogSwitch)
 | ||||
| 		//     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) | ||||
|     { | ||||
|         _TemperAdc = batAdc; | ||||
|         if(puiPara->BatteryLogSwitch) | ||||
| 		    printf("_TemperAdc:%d \n",batAdc); | ||||
|         // if(puiPara->BatteryLogSwitch)
 | ||||
| 		//     printf("_TemperAdc:%d \n",batAdc);
 | ||||
|     } | ||||
| 
 | ||||
| 	_DcVoltageVal = dcVoltageVal; | ||||
|  | @ -768,45 +768,61 @@ SINT32 sf_battery_adc_value_get(void) | |||
| 
 | ||||
| 	UINT32 dcTemp = 0; | ||||
| 	UINT32 batTemp = 0; | ||||
| 	UINT32 dcValueList = { 0 }; | ||||
| 	UINT32 batValueList = { 0 }; | ||||
|     UINT32 LibatTemp = 0; | ||||
|     UINT8 LibatCnt = 0; | ||||
|     UINT8 batCnt = 0; | ||||
|     UINT32 temperValue = 0; | ||||
| 
 | ||||
| 	//SINT32 ret = FAIL;
 | ||||
| 
 | ||||
| 	//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) | ||||
|         { | ||||
|             dcValueList = _DcVoltageVal; | ||||
| 
 | ||||
|             dcTemp += _DcVoltageVal; | ||||
|             temperValue += _TemperAdc; | ||||
|             if(_LiPolymerVoltageVal) | ||||
|             { | ||||
|                 batValueList = _LiPolymerVoltageVal; | ||||
|                 LibatTemp += _LiPolymerVoltageVal; | ||||
|                 LibatCnt++; | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 batValueList = _BatVoltageVal; | ||||
|                 batTemp += _BatVoltageVal; | ||||
|                 batCnt++; | ||||
|             } | ||||
| 
 | ||||
|             dcTemp += dcValueList; | ||||
|             batTemp += batValueList; | ||||
| 
 | ||||
|             readBatCnt++; | ||||
| 
 | ||||
|             sf_sleep_ms(100); | ||||
|             if(readBatCnt >= SF_READ_BAT_MAX) | ||||
|             //sf_sleep_ms(10);
 | ||||
|             if(readBatCnt >= 5) | ||||
|             { | ||||
|                 _DcVoltageVal = dcTemp / SF_READ_BAT_MAX; | ||||
|                 _DcVoltageVal = dcTemp / 5; | ||||
|                 _TemperAdc = temperValue/ 5; | ||||
|                  | ||||
|                 if(LibatCnt) | ||||
|                     _LiPolymerVoltageVal = LibatTemp / LibatCnt; | ||||
|                 if(batCnt) | ||||
|                     _BatVoltageVal = batTemp / batCnt; | ||||
| 
 | ||||
|                 if(_LiPolymerVoltageVal) | ||||
|                 { | ||||
|                     _LiPolymerVoltageVal = batTemp / SF_READ_BAT_MAX; | ||||
|                 if((_DcVoltageVal > _LiPolymerVoltageVal) && (_DcVoltageVal >= _BatVoltageVal) && (_DcVoltageVal >= SF_DC_IN_VOLATAGE)) | ||||
|                 {	 | ||||
|                     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) | ||||
| 		{ | ||||
|             //sf_sleep_ms(100);
 | ||||
|             sf_sleep_ms(100); | ||||
| 
 | ||||
| 			dcTemp += _DcVoltageVal; | ||||
|             temperValue += _TemperAdc; | ||||
|  | @ -1097,7 +1113,7 @@ void sf_view_osd_battery_draw(UINT8 bShow) | |||
| UINT8 sf_battery_value_get(UINT8 nightMode) | ||||
| { | ||||
| 	UINT8 value = 0; | ||||
| 	UINT8 batteryVal = 0; | ||||
| 	UINT32 batteryVal = 0; | ||||
| 	 | ||||
|     UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); | ||||
| 	if(IsPowerDcIn == 0) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 payton
						payton