Autor Tema: pregunta sobre estructura & unión de pines  (Leído 2127 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado manutek

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 555
pregunta sobre estructura & unión de pines
« en: 01 de Agosto de 2014, 00:15:49 »
Hola

Chachareando con la SKP32 y un GLCD con XC32 me encuentro con la imposibilidad de armar una unión a una estructura de bit de diferentes puertos .... o sea esto :

Código: [Seleccionar]
union {
    unsigned char byte;
    struct {
        unsigned LATGbits.LATG0  :1;
        unsigned LATGbits.LATG1  :1;
        unsigned LATFbits.LATF1   :1;
        unsigned LATFbits.LATF0   :1;
        unsigned LATDbits.LATD12:1;
        unsigned LATDbits.LATD13:1;
        unsigned LATDbits.LATD6  :1;
        unsigned LATDbits.LATD7  :1;
   } bits;
} portGLCD

el propósito de realizarlo de esta manera es para no realizar funciones que setean y acarrean algún registro ....pero no me compila .

Alguien me tira una idea ?

Saludos a todos
No es la conciencia del hombre la que determina su ser, sino, por el contrario, es su ser social el que determina su conciencia

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: pregunta sobre estructura & unión de pines
« Respuesta #1 en: 01 de Agosto de 2014, 12:06:01 »
Eso no lo puedes hacer, las uniones es una determinada memoria reservada y luego le asignas a cada variable distintos bits:

union {
char a;
struct {
char b1:1;
char b2:1;
char b3:1;
char b4:1;
char b5:1;
char b6:1;
char b7:1;
char b8:1;
};
}

en este caso estas declarando una variable de 8bits y esa variable la estas dividiendo en bits (b1, b2....). Pero no puedes coger un bit de distintas variables y ordenarlos en una misma memoria.

Te recomiendo que te leas un buen documento que explique el uso de las "union", es un poco complicado al principio, pero luego veras que es muy simple.

De todas formas lo que tu quieres hacer NO SE PUDE hacer asi.


 

anything