33.2.6 ADC Conversion Procedure (Basic Mode)
This is an example procedure for using the ADC to perform an Analog-to-Digital Conversion:
- Configure Port:- Disable pin output driver (refer to the TRISx register)
- Configure pin as analog (refer to the ANSELx register)
 
- Configure the ADC module:
- Configure ADC interrupt (optional):- Clear ADC interrupt flag
- Enable ADC interrupt
- Enable global interrupt (GIE bit)(1)
 
- If ADACQ != 0, software must wait the required acquisition time(2).
- Start conversion by setting the GO bit.
- Wait for ADC conversion to complete by
                one of the following:- Polling the GO bit
- Waiting for the ADC interrupt (if interrupt is enabled)
 
- Read ADC Result.
- Clear the ADC interrupt flag (if interrupt is enabled).
Note: 
            
        - With global interrupts disabled (GIE
                    = 0), the device will wake from Sleep, but will not enter an Interrupt Service Routine.
- Refer to the ADC Acquisition Requirements section for more details.
ADC Conversion (Differential Inputs)
 /*This code block configures the ADC
for polling, VDD and VSS references,
ADCRC oscillator.
Conversion start & polling for completion
are included.
  */
    void main()
 {
    initializeSystem();     //System Initialize
    //Setup ADC
    ADCON0bits.FM = 10;     //Right justify, sign/magnitude
    ADCON0bits.CS = 1;      //ADCRC Clock
    ADCON0bits.IC = 1;      //Differential mode
    ADPCH = 0x00;           //RA0 is positive input
    ADNCH = 0x01;           //RA1 is negative input
    TRISAbits.TRISA0 = 1;   //Set RA0 to input
    TRISAbits.TRISA1 = 1;   //Set RA1 to input
    ANSELAbits.ANSELA0 = 1; //Set RA0 to analog
    ANSELAbits.ANSELA1 = 1; //Set RA1 to analog
    ADACQ = 32;             //Set acquitisition time
    ADCON0bits.ON = 1;      //Turn ADC On
    while (1)
    {
       ADCON0bits.GO = 1;     //Start conversion
       while (ADCON0bits.GO); //Wait for conversion done
       resultHigh = ADRESH;   //Read result
       resultLow = ADRESL;    //Read result
    }
 }