#else
PIE1bits.ADIE = 0;
PIR1bits.ADIF = 0;
+ ADCON0 = 0;
+ ADCON2 = 0b00000110; // 64OSC, Right
+ ADCON1 = 0b00000000; // VREF+=VDD,VREF-=VSS
+ ADCON2 |= 0b10111000; // TAQ=20TAD, Right
if(ch < _REF_ADC) {
- ADCON0 = 0;
- ADCON2 = 0b00000110; // 64OSC, Right
- ADCON1 = 0b00000000; // VREF+=VDD,VREF-=VSS
- ADCON2 |= 0b10111000; // TAQ=20TAD, Right
ADCON0 = ch << 2;
-
ansel_val = 0x0001 << ch;
// ansel_val = 0x0080;
} else {
- ADCON0 = 0;
- ADCON2 = 0b00000110; // 64OSC, Right
- ADCON1 = 0b00000000; // VREF+=VDD,VREF-=VSS
- ADCON2 |= 0b10111000; // TAQ=20TAD, Right
- ADCON0 = 0x0f << 2;
+ ADCON0 = 0b00111100; //0x0f << 2;
ansel_val = 0x0000;
}
ANSELH = ansel_val >> 8;
do {
idle(50); // wait about 50us
a = polladc();
- } while((a & 0x8000) != 0);
+ } while(a == 0xffff);
return a;
}