Unions, Typedefs und Bits

Gast #662679
Lesenswert?

Hallo,

ich habe eine frage zu dem thema unions und typedefs. Wenn ich einen 
bitzugriff auf eine z.B 8bit variable realisieren will mache ich das 
normalerweise so:

typedef union{
    IO_BYTE  byte;
    struct
    {
      IO_BYTE P10 :1;
      IO_BYTE P11 :1;
      IO_BYTE P12 :1;
      IO_BYTE P13 :1;
      IO_BYTE P14 :1;
      IO_BYTE P15 :1;
      IO_BYTE P16 :1;
      IO_BYTE P17 :1;
    }bit;
}PDR1STR;

jetzt habe ich folgendes problem:

ich möchte bei 2 8bit variablen gleichzeitig auf das 0-te bit zugreifen.

wenn ich jetzt also schreibe

pdr1.bit.P10 kann ich auf das 0te bit zugreifen, und es entweder auf 1 
oder 0 setzen.

das ganze jetzt mit 2 8 bit variablen:
ich möchte jetzt aber mit irgeneinem c-ausdruck einen 2 bit wert 
zuweisen, dessen eines bit in dem 0-ten bit der ersten variablen landet, 
und dessen weites bit in dem 0-ten bit der zweiten 8bit variable landet.

ist das möglich?


gruß,
m.
#662685
Lesenswert?

Maddin wrote:

> das ganze jetzt mit 2 8 bit variablen:
> ich möchte jetzt aber mit irgeneinem c-ausdruck einen 2 bit wert
> zuweisen, dessen eines bit in dem 0-ten bit der ersten variablen landet,
> und dessen weites bit in dem 0-ten bit der zweiten 8bit variable landet.
>
> ist das möglich?

Nein, denn es handelt sich ja um 2 getrennte Variablen.
Schreib dir für den Zugriff eine Funktion oder meinetwegen
ein Makro.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren