Buenos dias.
Soy nueva en pic, estoy utilizando un PIC18F46K22 para realizar un proyecto en MPLABX con el compilador XC8 (v1.33).
Necesito ayuda con unas variables (en un programa en c) a las que tengo que acceder al byte entero que ocupan unas veces (ESTADO = 0x00) y otras veces tengo que acceder solamente a alguno de sus bits.
Para poder hacer las dos cosas he visto que hay que hacer algo como esto:
typedef union
{
unsigned char byte;
struct{
unsigned b0:0, b1:0, b2:0, b3:0, b4:0, b5:0, b6:0, b7:0;
};
} t_byte;
t_byte ESTADO;De esta manera puedo acceder al byte así:
ESTADO.byte = 0x00;y luego acceder a un bit así:
ESTADO.b7 = 1;Con esto me compila perfectamente (en el .c). El caso es que necesito utilizar esa variable en unas bibliotecas creadas tambien por mi, y ahí las declaro como:
extern t_byte ESTADO;Y no compila.
El error exacto que me da es este:
CALC_ERROR1.h:70: error: (1098) conflicting declarations for variable "SEG_BANDA" (CALC_ERROR1.h:69)CALC_ERROR.h es la biblioteca en la que lo uso y SEG_BANDA no es una variable, es una función dentro de esa biblioteca.
Ese es el único error que me da pero estoy bastante segura que es por lo de las compartir las variables t_byte porque antes de eso compilaba sin problemas.
Si comento la función SEG_BANDA entera y vuelvo a compilar el error me da en la siguiente función.
Espero haberme explicado bien y no haberos aturullado mucho jaja. Si alguien tiene alguna idea agradezco todo tipo de ayuda

.
Gracias por adelantado.