Hola amigos. En mi primer post en este foro quiero pediros ayuda para un problema que tengo con el convertidor A/D. He estado mirando la ayuda pero no he encontrado nada parecido. A continuación os paso un trozo de código que uso para configurar y usar el convertidor A/D de una pic 18F4550.
En este código, primero configuro el convertidor y a continuación lo utilizo. He usado una resistencia variable para simular la señal analógica. Una vez realizada la conversión mando el resultado por la USART. He podido comprobar que la USART funciona bien ya que otra parte del codigo funciona solo con la USART y no tengo ningún problema. De hecho al comunicarme con el hyperterminal recibo información pero, y ahí está mi problema, solo recibo el primer byte ADRESH. No recibo el ADRESL. Por favor, ¿podríais comprobar mi código e indicarme si veis algun error? Os agradezco vuestra ayuda. Gracias.
Alejos.
En este código, primero configuro el convertidor y a continuación lo utilizo. He usado una resistencia variable para simular la señal analógica. Una vez realizada la conversión mando el resultado por la USART. He podido comprobar que la USART funciona bien ya que otra parte del codigo funciona solo con la USART y no tengo ningún problema. De hecho al comunicarme con el hyperterminal recibo información pero, y ahí está mi problema, solo recibo el primer byte ADRESH. No recibo el ADRESL. Por favor, ¿podríais comprobar mi código e indicarme si veis algun error? Os agradezco vuestra ayuda. Gracias.
Alejos.
Código:
...
ADCON0bits.ADON=1;
OpenADC( ADC_FOSC_64 &
ADC_RIGHT_JUST &
ADC_20_TAD,
ADC_INT_OFF, 7 );
SetChanADC( ADC_CH0 );
Delay10TCYx(50); // trabajo a Fosc = 48MHz y 19200 baudios
ConvertADC();
while(BusyADC())
{}
putcUSART('#');
WriteUSART(ADRESH);
//putcUSART('#');
WriteUSART(ADRESL);
PIR1bits.ADIF=0; //No uso interrupciones pero por si acaso lo pongo a cero el flag.
...