www.mikrocontroller.net

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


Autor: Siegfried Saueressig (dieleena)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja klar, siehe deinen anderen Thread über die union und der struct.

Autor: Siegfried Saueressig (dieleena)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Der Micha (steinadler)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Siegfried Saueressig (dieleena)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.