Forum: Mikrocontroller und Digitale Elektronik Label für ein Bit in einem Byte


von Siegfried S. (dieleena)


Lesenswert?

Hallo,
kann ich einem Bit in einem Byte, das im Data-Memory angelegt ist, ein 
Label zuweisen?
ähnlich wie die Portpin "#define   EXT_OUT   LATDbits.LATD6"

Möchte damit erreichen das ich im Sourcecode mehr Übersicht erreiche.
z.B.  TestSpeicher[0].Bit5  == LED_AUF

In meinem Programm werden die Befehle Byte weise übertragen. Jenachdem 
welches Bit gemeint ist, werden nachfolgend Befehle ausgeführt.

Gruß Siegfried

von yalu (Gast)


Lesenswert?


von Gast (Gast)


Lesenswert?

Ja klar, siehe deinen anderen Thread über die union und der struct.

von Siegfried S. (dieleena)


Lesenswert?

Hallo,

union
{
  struct
  {
    unsigned Bit7:1;               //  Bit  7
    unsigned Bit6:1;               //  Bit  6
    unsigned Bit5:1;               //  Bit  5
    unsigned Bit4:1;               //  Bit  4
    unsigned Bit3:1;               //  Bit  3
    unsigned Bit2:1;               //  Bit  2
    unsigned Bit1:1;               //  Bit  1
    unsigned Bit0:1;               //  Bit  0
  };
   unsigned char Byte;
} GLOBAL TestStatus[8];

TestStatus[0].Bit7 = 1;
....
TestStatus[1].Bit6 = 0;

soweit ist es mir klar.

Für die Übersicht möchte ich gerne,
das das Label von "TestStatus[0].Bit7"   "Müller"

das das Label von "TestStatus[3].Bit7"   "Meyer"

heist

Gruß Siegfried

von Der M. (steinadler)


Lesenswert?

So wie du das geschrieben hast mit dem #define musst du es machen.

Das #define bearbeitet des Präprozessor, welcher einfach nur eine 
Ersetzung daraus macht.

von Siegfried S. (dieleena)


Lesenswert?

Hallo,
jetzt funktioniert es. vorher wurde "symbol 'Muller' has not been 
defined" angezeigt. Hatte einen Fehler aber wo frage mich nicht.
Danke für die schnelle Infos.
Gruß Siegfried

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.