Buenas al foro, tengo un problema con estructuras y uniones, estoy utilizando un PIC 18F452 y la versión CCS 3.207.
En mi primer programa en C utilizo flags para el flujo de programa, estos flags o banderas debo de guardarlos en EEPROM por si se reinicia el sistema por watch dog o por corte de tensión y viceversa, poder recuperar estas banderas de tipo 1bits desde la eeprom a la memoria.
He leido el hilo "MANEJO DE ESTRUCTURAS CON C30", pero no me funciona.
Os adjunto la estructura que he realizado:
typedef union BANDERAS{
int reg; //el registro es de 8bits para poder guardarlo en EEPROM
struct {
int1 flag_1 :1; //compuesta por 8 bits.
int1 flag_2 :1;
int1 flag_3 :1;
int1 flag_4 :1;
int1 flag_5 :1;
int1 flag_6 :1;
int1 flag_7 :1;
int1 flag_8 :1;
};
} estructura_1;
void main(){
estructura_1 registro; //renombramos con registro la estructura
int variable = 15; //creamos una variable con el valor de 15
registro.neg = variable; //Cargamos toda la estructura el valor de 15
registro.flag_1 = 1; //Le asignamos 1 a un bit de la estructura
}
La úlitma instrucción, "registro.flag_1 = 1", es donde tengo el problema.
El compilador aparece "ELEMENT IS NOT A MEMBER"
Osea la asignación de un bit no me la realiza, pero la asignación de todo el byte si.
Gracias