TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: kidpic en 01 de Abril de 2015, 20:19:01

Título: error en driver lcd.c
Publicado por: kidpic en 01 de Abril de 2015, 20:19:01
Cuando compilo me aparece esto:

Executing: "C:\Program files\Picc\CCSC.exe" +FM "distancia.c" +DF +LN +T +A +M +Z +Y=9 +EA
*** Error 12 "C:\PROGRA~1\PICC\drivers\lcd.c" Line 100(15,16): Undefined identifier  -- delay_us
*** Error 12 "C:\PROGRA~1\PICC\drivers\lcd.c" Line 112(15,16): Undefined identifier  -- delay_us
*** Error 12 "C:\PROGRA~1\PICC\drivers\lcd.c" Line 137(13,14): Undefined identifier  -- delay_ms
*** Error 12 "C:\PROGRA~1\PICC\drivers\lcd.c" Line 140(16,17): Undefined identifier  -- delay_ms
*** Error 12 "C:\PROGRA~1\PICC\drivers\lcd.c" Line 162(28,29): Undefined identifier  -- delay_ms
      5 Errors,  0 Warnings.
es decir tengo error en el drivere LCD.C
Elimino del programa todos los delay_us y delay_ms pero sigue existiendo esta leyenda. A que se debera.
Lo curioso que utilizo el mismo driver en otro programa y compila muy bien
Gracias
Título: Re: error en driver lcd.c
Publicado por: JORGE 500000 en 04 de Abril de 2015, 10:57:30
Sería mejor que pusieras el código para ver donde puede haber error, recuerdo que alguna vez me sucedió creo que era porque llamaba al lcd desde una función no declarada, tienes que declarar correctamente las funciones, al parecer la librería del lcd no encuentra las librerías de delay que están por defecto en el compilador ccs.
Título: Re: error en driver lcd.c
Publicado por: kidpic en 04 de Abril de 2015, 20:10:39
Aquí va el codigo Jorge

#include <16f877a.h>
#INCLUDE "lcd.c" // Librería para comunicación con el LCD incluida con el compilador PICC
#use delay (clock=4000000)
#fuses XT,NOWDT,NOPROTECT,NOLVP



int16 distancia,tiempo;
#define trig pin_B0
#define echo pin_B1

#int_TIMER1                              // atiende interrpción de maximo alcance
void timer1_isr(void)
{
output_high(PIN_C2);
delay_ms(1000),
output_low(Pin_C2);
//delay_ms(100);
set_timer1(0X8EB7);
}


Void main()
{
output_low(PIN_C1);
Lcd_init();
lcd_gotoxy(1,1);
lcd_putc("\f Iniciando....");
delay_ms(100);
setup_timer_1(T1_internal|T1_DIV_BY_1);
while (true);
{
output_high(trig);
//delay_us(20);
output_low(trig);
while(!input(ECHO))
{}
set_timer1(0X8EB7);
while (input(ECHO))
{}
tiempo=get_timer1();
distancia=((tiempo-36535)/58);
printf(lcd_putC,"\ftiempo:%Lu\nDistancia=%Lu",tiempo,distancia);
}
}
Gracias!!
Título: Re: error en driver lcd.c
Publicado por: PalitroqueZ en 04 de Abril de 2015, 20:52:15
#INCLUDE "lcd.c"

las comillas indican que el compilador buscará la librería en la misma carpeta donde se encuentra el código fuente, si la cambias por


#INCLUDE <lcd.c>

entonces el compilador buscará la libreria en la carpeta \...\drivers

Título: Re: error en driver lcd.c
Publicado por: kidpic en 05 de Abril de 2015, 18:44:36
Gracias por la respuesta, pero sigo teniendo ese problema. Cambie las comillas( "")  por los <lcd.c>. y me tira los mismos errores...
Título: Re: error en driver lcd.c
Publicado por: nico en 05 de Abril de 2015, 22:15:55
Fijate en que carpeta tienes lcd.c, sino prueba incluirla en la misma del código fuente y nos cuentas que hace.


Si puedes pega el contenido completo del resultado de la compilación para poder ver donde esta el problema.

Saludos.

Nico.
Título: Re: error en driver lcd.c
Publicado por: kidpic en 05 de Abril de 2015, 22:44:12
Gracias. Estoy empezando en esto. Como incluiria en el codigo el driver lcd.c?? es decir como lo invocaría ??
Título: Re: error en driver lcd.c
Publicado por: kidpic en 13 de Abril de 2015, 08:15:54
Buenas días muchachos. Tengo solucionado el problema. El error estaba  en el orden de las librerias en la cabecera de las declaraciones del código. A la librería LCD.C se la colocó al final y solucinado el problemita.
Gracias a los que respondieron !!!
Título: Re: error en driver lcd.c
Publicado por: PalitroqueZ en 13 de Abril de 2015, 11:02:45
que bien kidpic y gracias a tí por publicar la solución.

 :)