Bitzugriff vereinfachen / definieren

OP #970955
Lesenswert?

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 #970975
Lesenswert?

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 #971032
Lesenswert?

@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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren