#include "ADC.h"

void InitADC (void)
{

TRISA = 0b00000011;		//(RA0 a RA1 como entradas)

//AD Port Configuration Control bits(AN0 a AN1 activas)
ADCON1bits.PCFG0=1;
ADCON1bits.PCFG1=0;
ADCON1bits.PCFG2=1;
ADCON1bits.PCFG3=1;

//Voltage Reference Configuration bits (Vdd e Vss)
ADCON1bits.VCFG0=0;
ADCON1bits.VCFG1=0;

////Analog Channel Select bits (Channel 0 - AN0)
ADCON0bits.CHS0=0;
ADCON0bits.CHS1=0;
ADCON0bits.CHS2=0;
ADCON0bits.CHS3=0;

//AD Acquisition Time Select bits (2 TAD)
ADCON2bits.ACQT0=1;
ADCON2bits.ACQT1=0;
ADCON2bits.ACQT2=0;

//AD Conversion Clock Select bits (FOSC/32)
ADCON2bits.ADCS0=0;
ADCON2bits.ADCS1=1;
ADCON2bits.ADCS2=0;

////AD Result Format Select bit (left)
ADCON2bits.ADFM=0;


IPR1bits.ADIP = 1; //estabelece interrupt do AD como sendo de alta prioridade
INTCONbits.GIEH = 1; //activa os interrupts de alta prioridade
INTCONbits.GIEL = 0; //não activa os interrupts de baixa prioridade
PIE1bits.ADIE = 1; // AD interrupt activo

//AD On bit
ADCON0bits.ADON=1;

}