mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Structur mit Bitvariable


Autor: Markus Kempf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, ich hätte mal eine C frage.
Ich verwende als C compiler den CodeVisionAVR vers. 1.23.7a und hätte
gerne eine structur mit einer Bitvariable darin erstellt.

struct struct_weiche {
        bit status;
  char portmaske;
  char portbaustein;
  }weiche[64];

Laut Hilfe datei des Compilers ist dies angeblich möglich:
"The structure members can be any of the supported Data Types, arrays
of these data types or pointers to them."
Allerdings bekomme ich beim compiliren dann eine Fehlermeldung
"declaration syntax error" für diese Zeile mit der Bitvariable.
Mein frage: Ist es nicht möglich in einer Strucktur eine Bitvariable zu
verwenden?
Danke! Markus

Autor: Markus Kempf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm,
Ich hab ja immer noch die Hoffnung das es jemand giebt der mir was zu
diesem Thema sagen kann und schieb den Topic mal nach oben ;-).
Giebt doch bestimmt jemand der auch in C programiert und einen anderen
C-compiler verwendet, villeicht könnte derjenige mir den gefallen tun
und versuchen eine structur mit bitvariable zu erstellen dann wüsste
ich obs an meinem Compiler liegt oder ob es grundsätzlich nicht
sinnvoll ist, dies zu ermöglichen.
Ich habe inzwischen auch mal die neuste Version CodeVisionAVR
versucht...ging noch immer nicht.
Nochmals Danke!
Gruß Markus

Autor: Dirk Schnitzler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probier´s mal mit Gemütlichkeit :)


typedef enum {true=1, false=0} bool;

typedef struct BitField{
    unsigned int Flag1 : 1;
    unsigned int Flag2 : 1;
    unsigned int Flag3 : 1;
}BitField;

BitField TestBitField;

void main (void){
    TestBitField.Flag1 = true;
    TestBitField.Flag2 = false;
    //...
}

Gruß, Dirk.

PS: Das Buch "Programmieren in C" von K&R hilft
bei solchen Problemen besser als deine Compilerhilfe ,)

Autor: Markus Kempf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Dirk!

Danke in 2facher hinsicht :p. Ich habe auch ein C-Buch hier rumliegen
aber ich war leider so dämlich nur unter "structur" zu lesen. Hätte
ich unter "Bitfelder" gekuckt hätt ich mir den Post sparen können.
:p

"Probier´s mal mit Gemütlichkeit :)"

Das hatte nix mit Ungeduld zu tun das ich nochmal selbst gepostet habe,
aber hättest du den Topic gelesen wenn er inzwischen auf der 2ten Seite
gelandet wäre? ;)

Frohe Weihnachten!
Gruß Markus

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.