采用PIC18的MCU对电压信号进行采集,电压为市电用互感器1000/1把380转换成0-0.38的电压信号采集,现在发现200以下的采集不准确,一直显示200.200以上的可以正常显示?
void User_voltage_ADC_Init(void) {
TRISAbits.TRISA4 = 1;
ANSELbits.ANS3 = 1 ;
ADCON0 = 0b00001101;
ADCON1 = 0b00000000;
ADCON2 = 0b10001110;//0b10001001;
}
uint Get_Voltage(void) {
User_voltage_ADC_Init();
uint voltage = 0;
TRISAbits.TRISA4 = 1;
ADCON0bits.GO=1; //开始转换
while ( ADCON0bits.GO);
voltage =(uint)(ADRESH*256+ADRESL); //获得转换后的AD数值
return voltage;
}
这是为什么?
|