int ResultadoADC; //16 bits si no me equivoco
// Paso 1 , Aca lo hice todo junto pero podes hacerlo bit por bit
ADCON1 = 0x8E; //AN0 solo habilitado (tenes una tabla en el datasheet), los demas digitales, justificado derecha.
ADCON0 = 0xC1; // Canal AN0 , Seleccione reloj RC interno que posee el ADC y activo el ADC poniendo 1 en el bit ADON
// Paso 2
// No uso interrupciones, asi que no tengo que activar las interrupciones del ADC
// Paso 3
_delay_us(15); // el TAD del FRC puede ir de 4 a 6 us segun el datasheet. Se necesita esperar 2 TAD, asi que puse 15 us
// Paso 4
ADCON0bits.GO = 1
//Paso 5 por que no uso interrupciones espero que termine aca, sino activaria y cuando se produzca la interrupcion significa que ya esta listo.
while(ADCON0bits.GO); // Cuando se pone a 0 es por que termino
// Paso 6, guardo el resultado
ResultadoADC = (ADRESH << 8);
ResultadoADC += ADRESL;
//Paso 7
// Si necesito hacer lo de nuevo repito los pasos 3,4,5 y 6