Autor Tema: Duda conversion ADC  (Leído 1995 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado horty69

  • PIC10
  • *
  • Mensajes: 17
Duda conversion ADC
« en: 15 de Junio de 2014, 14:23:06 »
Hola,
estoy intentando medir la temperatura de un LM35 y mostrarla en un LCD, pero me aperecen letras muy extrañas del codigo ansi o numeros pero todo muy al azar.
Dejo el cógido haber si alguien me puede ayudar a encontrar el fallo

Código: [Seleccionar]
TRISA = 0x00;
    PORTA = 0x00;
    ANSELbits.ANS0=1;

    ADCON0bits.ADCS0=1;
    ADCON0bits.ADCS1=1;

    ADCON0bits.CHS0=0;
    ADCON0bits.CHS1=0;
    ADCON0bits.CHS2=0;
    ADCON0bits.CHS3=0;
    ADCON1bits.ADFM=0;
    int adc=0;
while(1){
        ADCON0bits.ADON=1; //Activa ADC
        __delay_ms(1);
        ADCON0bits.GO=1;
        while(ADCON0bits.GO);
        ADCON0bits.ADON=0;  // Desactiva ADC
        __delay_ms(1);
        adc=ADRESH;
        adc=adc<<8;
        adc=adc+ADRESL;
       
        lcd_send_cmd(LCD_LN2);
        lcd_send_dat(adc);
        __delay_ms(100);
       
       
        }


Desconectado soymoe

  • PIC18
  • ****
  • Mensajes: 456
    • El blog de Moe
Re: Duda conversion ADC
« Respuesta #1 en: 15 de Junio de 2014, 17:55:25 »
Hola,
estoy intentando medir la temperatura de un LM35 y mostrarla en un LCD, pero me aperecen letras muy extrañas del codigo ansi o numeros pero todo muy al azar.
Dejo el cógido haber si alguien me puede ayudar a encontrar el fallo

Código: [Seleccionar]
TRISA = 0x00;
    PORTA = 0x00;
    ANSELbits.ANS0=1;

    ADCON0bits.ADCS0=1;
    ADCON0bits.ADCS1=1;

    ADCON0bits.CHS0=0;
    ADCON0bits.CHS1=0;
    ADCON0bits.CHS2=0;
    ADCON0bits.CHS3=0;
    ADCON1bits.ADFM=0;
    int adc=0;
while(1){
        ADCON0bits.ADON=1; //Activa ADC
        __delay_ms(1);
        ADCON0bits.GO=1;
        while(ADCON0bits.GO);
        ADCON0bits.ADON=0;  // Desactiva ADC
        __delay_ms(1);
        adc=ADRESH;
        adc=adc<<8;
        adc=adc+ADRESL;
       
        lcd_send_cmd(LCD_LN2);
        lcd_send_dat(adc);
        __delay_ms(100);
       
       
        }

Proba primero que la rutina del lcd ande...lo mas probable es que no este andando bien

Desconectado horty69

  • PIC10
  • *
  • Mensajes: 17
Re: Duda conversion ADC
« Respuesta #2 en: 15 de Junio de 2014, 17:58:47 »
El lcd me funciona perfectamente, lo que yo creo que no hago bien la conversion ADC ya que me pone todo tipo de caracteres aleatorios en la pantalla y no entiendo porque es

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Duda conversion ADC
« Respuesta #3 en: 15 de Junio de 2014, 18:11:28 »
yo creo que es porque al poner lcd_send_dat(adc) lo que haces es poner el ascii de la variable adc y no el equivalente en texto.

Desconectado horty69

  • PIC10
  • *
  • Mensajes: 17
Re: Duda conversion ADC
« Respuesta #4 en: 15 de Junio de 2014, 19:38:59 »
Y para el compilador xc8 como hago para escribir el equivalente en texto

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Duda conversion ADC
« Respuesta #5 en: 15 de Junio de 2014, 22:55:30 »
  Para convertir un entero a ascii existe la función ITOA. En el manual del compilador hay un ejemplo de como emplearla.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado horty69

  • PIC10
  • *
  • Mensajes: 17
Re: Duda conversion ADC
« Respuesta #6 en: 17 de Junio de 2014, 13:03:20 »
Parece ser que ahora si que realiza la conversión pero compilandolo me ofrece el siguiente error el MPLABX con el compilador XC8

Citar
:0: error: can't find 0x3E words (0x3e withtotal) for psect "text9" in class "CODE" (largest unused contiguous range 0x3A)
:0: error: can't find 0x3B words (0x3b withtotal) for psect "text15" in class "CODE" (largest unused contiguous range 0x3A)
:0: error: can't find 0x2E words (0x2e withtotal) for psect "text16" in class "CODE" (largest unused contiguous range 0x12)
:0: error: can't find 0x2A words (0x2a withtotal) for psect "text6" in class "CODE" (largest unused contiguous range 0x12)
:0: error: can't find 0x28 words (0x28 withtotal) for psect "text4" in class "CODE" (largest unused contiguous range 0x12)
:0: error: can't find 0x26 words (0x26 withtotal) for psect "idataBANK3" in class "CODE" (largest unused contiguous range 0x12)
:0: error: can't find 0x25 words (0x25 withtotal) for psect "text14" in class "CODE" (largest unused contiguous range 0x12)
:0: error: can't find 0x23 words (0x23 withtotal) for psect "text3" in class "CODE" (largest unused contiguous range 0x12)
:0: error: can't find 0x1C words (0x1c withtotal) for psect "idataBANK1" in class "CODE" (largest unused contiguous range 0x12)
:0: error: can't find 0x10 words (0x10 withtotal) for psect "text17" in class "CODE" (largest unused contiguous range 0xB)
:0: error: can't find 0x8 words (0x8 withtotal) for psect "clrtext" in class "CODE" (largest unused contiguous range 0x6)

Llevo dandole vueltas todo el rato y no entiendo porque puede ser, a parte de que no me manda a ninguna línea donde pueda encontrarse el fallo

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Duda conversion ADC
« Respuesta #7 en: 17 de Junio de 2014, 18:44:32 »
  Muestra el código actual que estás utilizando.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas


 

anything