Forum: Mikrocontroller und Digitale Elektronik Erklärung zu Typendefinition?


von Martin (Gast)


Lesenswert?

Hallo zusammmen,
ich habe Probleme einen typedef zu deuten und benötige da kurz eure 
Hilfe.
Folgende Sturkur ist angelegt:
typedef struct StatusInfo
{
  StatusGruppe Status : 4;
  StatusGruppe Zustand : 3;
  StatusGruppe Verzoegerung : 1;
} a;
Kann sein das ich den Wlad vor lauter Bäumen nicht sehe, aber ich kann 
mit dem " : 4 " usw. nichts anfangen.
Herzlichen Dank für eure Unterstützung.
Gruß Martin

von Klaus W. (mfgkw)


Lesenswert?

Das ist ein Bitfeld und damit sagt man dem Compiler. daß man für
das Element Status nur maximal 4 Bit benötigt, für Zustand nur 3 etc..
Der Compiler kann dann diese Elemente in einer int zusammenfassen.

Das funktioniert nur für ganzzahlige Elemente; keine Ahnung ob
StatusGruppe so etwas ist.

von David M. (md2k7)


Lesenswert?

Hallo!

Das ist ein Bitfeld mit insgesamt 8 bits, passt also komplett in ein 
einziges Byte. Status hat 4 bits (Wertebereich 0-15), Zustand 3 (0-7), 
Verzoegerung 1 (0 oder 1).

Meine Angaben zum Wertebereich setzen voraus, dass der Typ StatusGruppe 
unsigned ist.

Siehe http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Bitfelder

Gruß
David

von Martin (Gast)


Lesenswert?

Danke euch allen.

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.