Forum: Mikrocontroller und Digitale Elektronik Unions, Typedefs und Bits


von Maddin (Gast)


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.

von Karl H. (kbuchegg)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.