/********************************************************************************************************* * 函 数 名: Get_Adc_Average * 功能说明: 获取通道ch的转换值,取times次,然后平均 * 形 参:ch:通道值 0~16, times:获取次数 * 返 回 值: 通道ch的times次转换结果平均值 ********************************************************************************************************* */ u16 Get_Adc_Average(u8 ch,u8 times) { u32 temp_val=0; u8 t; for(t=0;t<times;t++) { temp_val+=Get_adc(ch); } return temp_val/times; }
u16 Get_adc_average(u8 times) { u32 temp_val=0; u8 t; for(t=0;t<times;t++) { temp_val+=Get_adc(); delay_ms(5); } return temp_val/times; }
/********************************************************************************************************* * 函 数 名: Get_Temp * 功能说明: 得到ADC采样内部温度传感器的温度值 * 形 参: * 返 回 值: 3位温度值 XXX*0.1C ********************************************************************************************************* */ int Get_Temp(void) { u16 temp_val=0; u8 t; float temperate; for(t=0;t<20;t++)//读20次,取平均值 { temp_val += Get_adc(ADC_CH_TEMP); } temp_val/=20; temperate=(float)temp_val*(3.3/4096);//得到温度传感器的电压值 temperate=(1.43-temperate)/0.0043+25;//计算出当前温度值 temperate*=10;//扩大十倍,使用小数点后一位 return (int)temperate; }