Bit invertieren klappt nicht

Gast #2308383
Lesenswert?

Hallo,

ich versuche mich gerade in AVR-GCC-Tutorial einzuarbeiten mit AVR 
studio. Es klapp soweit alles gut. Ausser mit folgenden Code Zeilen. Ich 
will eigentlich nur den Bit auf der Stelle K100 eines Bytes LSO_DATA zu 
invertiren.

>>#define LS0_DATA 0x00
>>#define K100 5
>>LS0_DATA ^= (1<<K100);

Wenn ich kompeliere dann bekomme ich staendig folgenden Fehler fuer die 
letzte Zeile.

>>value required as left operand of assignment

Weis jemand was ich falsch mache?

Gruss
#2308385
Lesenswert?

student schrieb:
> ich versuche mich gerade in AVR-GCC-Tutorial einzuarbeiten mit AVR
> studio. Es klapp soweit alles gut. Ausser mit folgenden Code Zeilen. Ich
> will eigentlich nur den Bit auf der Stelle K100 eines Bytes LSO_DATA zu
> invertiren.
>
>>>#define LS0_DATA 0x00
>>>#define K100 5
>>>LS0_DATA ^= (1<<K100);
>
> Wenn ich kompeliere dann bekomme ich staendig folgenden Fehler fuer die
> letzte Zeile.
>
>>>value required as left operand of assignment
>
> Weis jemand was ich falsch mache?

Du mißverstehst #define. Das ist nur eine textuelle Ersetzung. Du hast 
programmiert:

0x00 ^= (1<<5);

Und das ist offensichtlich Blödsinn.

Viele Grüße,
        Simon
#2308574
Lesenswert?

student schrieb:
> ich versuche mich gerade in AVR-GCC-Tutorial einzuarbeiten mit AVR
> studio. Es klapp soweit alles gut. Ausser mit folgenden Code Zeilen. Ich
> will eigentlich nur den Bit auf der Stelle K100 eines Bytes LSO_DATA zu
> invertiren.

Die folgenden Zeilen sind überhaupt kein Code.

student schrieb:
> Weis jemand was ich falsch mache?

Du kannst kein C.
Besorg' dir ein C-Buch und arbeite erstmal das durch.
Sonst wird das nie was.

mfg.

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