TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: thehernancito en 13 de Junio de 2005, 19:31:00
-
No funciona el define dentro de Librerias
Tengo un problema a la hora de simular con MPLAB SIM, es el siguente:
Estoy usando las funciones con la libreria "xlcd.h"para un LCD convencional (14 pines).
Cuando defino los parametros que me pide la libreria "xlcd.h" como (#define BIT8) para usar 8 lineas de transmision de datos el me compila perfectamente pero al simular no concuerda.
El ejemplo que voy a dar esta dividido en dos partes:
PARTE 1 (archivo libreria.h)
se creara un libreria llamada "libreria.h" que contiene una funcion llamada (func1)
------------------------------------------------------
void func1 (void) {
ifdef BIT8 //Si se ha definido BIT8 entrara en la condicion
PORTB=255;
endif
Nop(); //este codigo se escribe para esplicar las adelante
Nop(); //realmente es codigo adicional o basura
Nop();
}
------------------------------------------------------
PARTE 2 (archivo main.c)
------------------------------------------------------
#define BIT8
#include "libreria.h"
void main (void) {
func1(); //llama a la funcion para verificar si se ha definido BIT8
}
------------------------------------------------------
Segun lo que yo creo, pienso que al llamar func1() debe poner el PORTB=255 pero en el simulador no lo hace, simplemente se salta la condicion que esta dentro de la funcion y sigue ejecutando los Nop() como si siguera el programa normalmente
No se que esta pasando.
El problema principal esta en que las definiciones que se hagan en en el archivo principal o en otras librerias no tienen valides alguna si se evaluan en otras librerias como la que coloque de ejemplo (libreria.h)
Cualquier ayuda les agradesco......
-
Pon el símbolo # delante de ifdef y de endif