TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado 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
-
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.
-
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!!
-
#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
-
Gracias por la respuesta, pero sigo teniendo ese problema. Cambie las comillas( "") por los <lcd.c>. y me tira los mismos errores...
-
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.
-
Gracias. Estoy empezando en esto. Como incluiria en el codigo el driver lcd.c?? es decir como lo invocaría ??
-
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 !!!
-
que bien kidpic y gracias a tí por publicar la solución.
:)