La diferencia del ADC con los demas PICs , es que podes controlar el sampling y la conversion independientemente, ademas posees 4 S/H
Y no solo eso, sino que cuando los lei me di cuenta el DESASTRE que hicieron los de Microchip en documentar estos micros. Es la peor documentacion que eh visto. Por que trata las cosas muy generales, y encima tenes que abrir cerca de 4 documentos mas para ver un modulo, Ej.. para el ADC tenes que tener el datasheet del micro + datasheet de los pines configurables/alternativos, etc. Sinceramente lo lees y en ves de explicarte te llena de mas dudas.
Vos queres:
- Sampleo automatico
- Conversion manualmente.
Una cosa que tiene una nota:
Do not clear the DONE bit in software if ADC Sample Auto-Start is enabled (ASAM = 1).
Lo raro es que el codigo que te provee Microchip posee la limpieza del bit DONE.
Creo que tu problema se encuentra en:
El cual deberia ser para unir AN0 con CH0
Otra cosa mas, el tema de los tiempos
Como es auto-sampling deberias darle tiempo, No deberias dejarlo en 0 TAD, hay una acotacion en el datasheet. Imagino que podrias utilizar el oscilador interno que posee el ADC, Por las dudas tambien seleccionamos 31 TAD en el Sampling dejando:
-----------------------------------------------------------
PD... me parecio raro que no posea un delay, entonces busque y encontre esto en el MPLAB® XC16 C Compiler User’s Guide:
3.5.7 How Can I Implement a Delay in My Code?
Using a device timer to generate a delay is the best method. If no time is available, then
you can use the library functions _delay32, __delay_ms, or __delay_us, as they
are described in the following document. It is available for download from the Microchip
Technology website, www.microchip.com.
“16-Bit Language Tools Libraries Reference Manual” (DS50001456)
El tema es que buscas ese archivo y no dice NADA de NADA de delays, podrias probar ponerlo y ver si funciona.