Index: fw/sdk/yc_adc.c
===================================================================
--- /YC3121_SDK/fw/sdk/yc_adc.c	(revision 651)
+++ /YC3121_SDK/fw/sdk/yc_adc.c	(working copy)
@@ -24,7 +24,7 @@
 	
 	/****************config adc******************* */
 	ADC_CTRL1 = 0x8f|((ADC_InitStruct->ADC_Mode)<<4);
-	ADC_ENBLE = 0x7c;
+	ADC_ENBLE |= 0x7c;
 	ADC_CTRL0 = 0x7f;
 	ADC_CTRL2 = 0xaa;
 	ADC_CTRL3 = 0x30|ADC_InitStruct->ADC_Channel;
@@ -33,7 +33,7 @@
 uint16_t  ADC_GetResult(ADC_ChxTypeDef ADC_Channel)
 {
 	int nop =  WAIT_TIME;
-	ADC_ENBLE = 0x7c;
+	ADC_ENBLE |= 0x7c;
 	ADC_CTRL0 = 0x7f;
 	ADC_CTRL2 = 0xaa;
 	ADC_CTRL3 = 0x30|ADC_Channel;
@@ -48,7 +48,7 @@
 	int nop = WAIT_TIME;
 	int cnt = 200;
 	
-	ADC_ENBLE = 0x7c;
+	ADC_ENBLE |= 0x7c;
 	ADC_CTRL0 = 0x7f;
 	ADC_CTRL2 = 0xaa;
 	ADC_CTRL3 = 0x30|ADC_Channel;
@@ -142,12 +142,12 @@
 	if (reg_voltage_low == 0 || ref_voltage_high == 0)
 		return -1;
 		
-	while (i++ < FILT_NUM)//get FFILT_NUM  result
+	while (i < FILT_NUM)//get FFILT_NUM  result
 	{	
 		result =  ADC_GetResult(ADC_Channel);
 		if (result >0)
 		{	
-			adc_result_buf[i] = calculate_voltage(result, ref_voltage_high, reg_voltage_low, voltage_high, voltage_low);
+			adc_result_buf[i++] = calculate_voltage(result, ref_voltage_high, reg_voltage_low, voltage_high, voltage_low);
 		}
 		if (++j>FILT_NUM+10)
 			return -1;    //debug whiel(1)
