Que tal amigos, estoy programando el ADC del DSPIC 33FJ12GP202, no me marca errores a la hora de compilar el programa, solo que al simularlo no hay conversión, alguien que pueda orientarme por favor en que estoy fallando? No tengo mucha experiencia en estas cosas, pero estoy interesado en aprender, muchas gracias de ante mano, saludos!
#include <p33FJ12GP202.h>
#define fcy 16000000
_FOSC ( FCKSM_CSDCMD & IOL1WAY_OFF & OSCIOFNC_OFF & POSCMD_XT );
int main (void);
void adc (void);
int main (void)
{
TRISB=0X0000;
adc();
AD1CON1bits.ADON=1; //SE HABILITA EL ADC
while (1)
{
AD1CON1bits.SAMP=1;//INICIA EL MUESTREO
delay_ms(3);
AD1CON1bits.SAMP=0;//TERMINA EL MUESTREO
while(!AD1CON1bits.DONE);// SE HA REALIZADO LA CONVERSIÓN?
PORTB=ADC1BUF0; //LOS DATOS SE GUARDAN EN EL BUFER 0 DEL ADC Y SE MANDAN AL PUERTO B
}
}
void adc(void)
{
TRISA=0X0001; //ENTRADA POR RA0
AD1PCFGL=0; //ENTRADAS ANALÓGICAS
AD1CON1bits.AD12B=1;//ADC DE 12 BITS}
AD1CON2bits.VCFG=0;
AD1CON3=33;
AD1CON1bits.ASAM=1;
AD1CON1bits.SSRC=1;///TERMINA EL MUESTREO
AD1CON1bits.FORM=0;
IFS0bits.AD1IF=1;
AD1CON1bits.DONE=1;
IFS0bits.AD1IF=0;
IPC0bits.T1IP=1;
}