Cómo leer ADCBUF en dsPIC30f4011 en Muestreo simultáneo de ADC

0

Estoy tratando de leer 4 canales de ADC simultáneamente usando dspic30f4011. Pero no estoy obteniendo el resultado requerido. Supongo que el problema está en ADCBUFx. ¿Alguien puede decirme cómo manejar ADCBUFX en ADC. Al utilizar el muestreo simultáneo de ADC, solo obtengo 3 valores de canal de ADC y el 4º no está obteniendo ningún valor. Es un valor de lectura desde un pin externo.
Aquí está el código que estoy usando:

 void ADC_Initi()

{   
ADCON1bits.ADON = 0;
TRISB = 0xFFFF;   
ADPCFG = 0x0038;  //Selecting analogue pins AN0127

ADCHSbits.CH0SA = 7;
ADCHSbits.CH0NA = 0;
ADCHSbits.CH123SA = 0;
ADCHSbits.CH123NA = 0;
ADCSSLbits.CSSL2 =0;  
ADCSSLbits.CSSL7 =0;
ADCSSLbits.CSSL1 =0;
ADCSSLbits.CSSL0 =0;

ADCON3bits.SAMC = 3;     //Auto sample time 3TAD//max sample time
ADCON3bits.ADRC = 0;     //selecting Conversion clock source derived from system clock
ADCON3bits.ADCS = 5;     //Selecting conversion clock 3Tcy, TAD=(TCY/2)(ADCS+1)

ADCON1bits.ADSIDL = 0;   //Selecting continue mode operation in idle mode
ADCON1bits.FORM = 0;     //Selecting data output in signed integer format
ADCON1bits.SSRC =7;     //the conversion trigger is under A/D clock
ADCON1bits.SIMSAM =1;   // Samples CH0, CH1, CH2, CH3 simultaneously
ADCON1bits.ASAM = 1;    
ADCON1bits.SAMP = 0;    
ADCON2bits.VCFG = 0;     //Voltage Reference Configuration bits
ADCON2bits.CSCNA =0;    //Disable input scan 
ADCON2bits.CHPS  =3;    //Selecting conversion channel CH0123
ADCON2bits.SMPI =3;     //Interrupts at the completion of conversion for each sample/convert sequence
ADCON2bits.ALTS =0;     //Uses MUX A input multiplexer settings
ADCON2bits.BUFM =0;     // Buffer configured as one 16-word buffer ADCBUF(15...0)

ADCON1bits.ADON = 1;     //A/D converter is ON
}
void main( )
{
ia=0;
ib=0;
ic=0;
ref_speed=0;
while(1)
{
//are these buffers correct or not??? 
ia=ADCBUF3; //channel 3
ib=ADCBUF2;     //channel 2
ic=ADCBUF1;     //channel 1
ref_speed=ADCBUF0;  //channel 0
}
}
    
pregunta John Dark

0 respuestas

Lea otras preguntas en las etiquetas