Autor Tema: ayudita con conversion a/d  (Leído 1914 veces)

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

Desconectado naieto

  • PIC10
  • *
  • Mensajes: 45
ayudita con conversion a/d
« en: 23 de Junio de 2006, 01:07:26 »
HOla Gente, estoy haciendo mi primer conversion a/d con un lm35d y mostrando en un display de nokia, pero cuando compilo me tira un error cuando lee el nokia_lcd.h que dice: undefined identifier-delay_us()
El programa SEGURO TIENE MUCHOS ERRORES DODAVIA pero ese no me lo esperaba y no se a que se debe. Alquien sabe a que se debe ESE error?!?!
Gracias!!!!!

#include <18F252.h>
#Include <nokia_lcd.c>
#device adc=8
#fuses XT,NOWDT,NOPROTECT,PUT,NOBROWNOUT,nolvp
#use delay(clock=4000000)

#byte PORTB=0xf81                 
#byte TRISB=0xf93             

main()
    {
     int medicion;
     float temp=medicion*09803;
     lcd_init();
     nokia_gotoxy(22,0);
     printf(nokia_printchar,"Temperatura");
     nokia_gotoxy(42,2);
     printf(nokia_printchar,"gC");
     setup_adc(adc_clock_div_64);
     setup_adc_ports(RA0_analog_RA3_ref);
     set_adc_channel(0);

     While(1)
          {
           delay_ms(250);
           medicion=read_adc ();
           nokia_gotoxy(40,2);
           printf("%40.2f",temp);
          }
    }

El fruto solo madura con el tiempo

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: ayudita con conversion a/d
« Respuesta #1 en: 23 de Junio de 2006, 02:05:43 »
Ese mensaje se debe a que la librería de Nokia que estás usando utiliza una función llamada delay_us() que tu compilador no reconoce, ni está definida en ninguna parte de tu programa.
Esa función viene "de serie" en el CCS, ¿cuál es tu compilador?

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: ayudita con conversion a/d
« Respuesta #2 en: 23 de Junio de 2006, 08:58:38 »
Haber, tu error esta aqui:
Código: C
  1. #include <18F252.h>
  2. #Include <nokia_lcd.c>
  3. #device adc=8
  4. #fuses XT,NOWDT,NOPROTECT,PUT,NOBROWNOUT,nolvp
  5. [b]#use delay(clock=4000000)[/b]       ///AQUI ESTA EL ERROR

En la compilacion debes seguir un orden sino el compilador se volvera loco o lo mas probable, te de errores cuando quizas todo este bien, la funcion delay_xx() se encuentra definida en la libreria
Código: C
  1. #use delay(clock=xx)

En tu codigo, la libreria de la pantalla de nokia esta antes que la libreria de tiempos, por lo tanto por eso te dice que no esta definida la funcion delay_us, lo que tienes que hacer es ordenar el codigo y poner antes la funcion de tiempos:
Código: C
  1. #include <18F252.h>
  2. #device adc=8
  3. #fuses XT,NOWDT,NOPROTECT,PUT,NOBROWNOUT,nolvp
  4. #use delay(clock=4000000)
  5. #Include <nokia_lcd.c>

Compila asi y haber que tal...


Suerte!!! :wink:
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado naieto

  • PIC10
  • *
  • Mensajes: 45
Re: ayudita con conversion a/d
« Respuesta #3 en: 23 de Junio de 2006, 09:57:03 »
Muchas gracias a nocturno y vszener. El compilador que uso es el ccs, nocturno. Efectivamente el error estaba en el orden entre #Include <nokia_lcd.c> y #use delay(clock=4000000). Bueno de seguro es pregunta no la hago mas jejeje, ya entendi la explicacion de vszener.
Igualmente seguro que tenga mas preguntas respecto a la conversion que estoy haciendo. Donde se supone que hago esas preguntas, en este mismo post o en uno nuevo?
Ese mensaje se debe a que la librería de Nokia que estás usando utiliza una función llamada delay_us() que tu compilador no reconoce, ni está definida en ninguna parte de tu programa.
El fruto solo madura con el tiempo

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: ayudita con conversion a/d
« Respuesta #4 en: 23 de Junio de 2006, 15:00:37 »
Me alegro que lo hayas solucionado!!! con respecto a las preguntas, si van a corde a la conversion del a/d puedes realizarlas aqui mismo ya que el titulo va bastante acorde a ello, en caso de creer que la pregunta es de algo especifico pues crea otro tema y ya esta


Suerte!!! :wink:
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado naieto

  • PIC10
  • *
  • Mensajes: 45
Re: ayudita con conversion a/d
« Respuesta #5 en: 24 de Junio de 2006, 12:37:13 »
Bien, ahora tengo otra duda. El pic que utilizo (18f252) tiene dos referencias, una Vref- y una Vref+. Y mi LM35D mide de 0 a 100 grados C. Lo que hice fue poner Vref+ a 2,56 Volts que junto con la resolucion de 8 bits que utilizo, me incrementa de a 1 grado de 0 a 100 en el display. Ahora mi pregunta es que hago con el Vref-? lo tengo que definir en setup_adc_ports()?, lo conecto a tierra? si no lo defino queda automaticamente conectado a tierra?, da igual?
El fruto solo madura con el tiempo