Bitzugriff vereinfachen / definieren

OP #970955
Hallo, ich habe gleich noch eine Frage:

Kann man mit dem GCC-Compiler die Bitzugriffe etwas vereinfachen?

Bei vielen Compilern (CodeVision, CC5x,..) kann man ja mit
1
variableX.0
direkt auf ein Bit lesend und schreibend zugreifen.
mit
1
#define MeinBit variableX.0

kann man das ganze ja schön definieren. Natürlich ist das nicht ANSI-C 
konform aber durchaus praktisch. Gibt einen Trick bei den #defines, mit 
denen man sowas bei GCC-Code "nachrüsten" kann?

Hintergrund:
Ich möchte meine Bits gerne definieren, damit ich im Quelltext nur noch 
so etwas wie:
1
if(MeinBit1)MeinBit2 = 1;

verwenden muss. Oder komme ich im Quelltext um die Operatoren
http://www.mikrocontroller.net/articles/Bitmanipulation
nicht herum? Lesend und schreibend auf ein benanntes Bit wäre schon sehr 
vorteilhaft.
Gast
Bei CodevisionAVR geht das aber nur bei Portzugriffen, man kann 
lediglich die einzelnen Bits eines I/O-Ports auf diese Weise ansprechen. 
Bei einer beliebigen Variable funktioniert das definitiv nicht. Woher 
hast du die Information, dass man bei CodevisionAVR das so machen 
könnte?

Das einzige, was bei CodevisionAVR in Richtung Bitzugriff geht, ist die 
Definition von Bitvariablen. Man kann aber maximal 8 lokale Bitvariablen 
definieren, wenn es mehr sein sollen, müssen das globale Variable sein.

Verwunderte Grüße, Hähh?
OP
@Hähh?
Sorry, beim CC5X funktioniert der Variablenzugriff so. Beim CV habe ich 
auch in Codebeispielen dien Punkt-Zugriff gesehen. Wahrscheinlich war es 
aber ein PORT-Zugriff und ich habe das auf Variablen geschlossen.

@Peter:
Danke. Das funktioniert wunderbar !!
Genau das habe ich gesucht.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.