Bit Manipulation

Gast #2262874
Lesenswert?

Hallo zusammen,
ich bin C-Anfänger und möchte gerne geziehlt ein DDR-Register mit einer 
Variablen setzen oder löschen. Dabei dürfen bestimmte Bits im 
DDR-Register nicht verändert werden.

zB.

DDRA= 0x11100000b
Variable A = 0x00001100b
Ergebis: DDRA = 0x11101100b
wenn Variable A nun 0x00000001 wird
Ergebis: DDRA = 0x11100001b

Kann mir da jemend helfen? Vielen Dank im Voraus

Gruß
John
Gast #2262912
Lesenswert?

Hallo,
erst mal Danke für die schnelle Antworten.

Ich glaube ich habe mich nicht richtig ausgedrückt.
Das ich Bits mit dem | und & Operator setzen oder löschen kann ist mir 
klar.
Nun möchte ich aber mit einer Variablen das DDR-Register in einer 
Funktion manipuliren. Da weis ich ja vorher nicht ob das DDR-Register 
mit der Variablen UND oder OR verknüpft werden muss. Ich hoffe, dass es 
jetzt besser rüber gekommen ist.

Gruß
John
Gast #2262922
Lesenswert?

unsigned char a = $0C;

DDRA = 0;

DDRA |= a; // setzt nur die bits 0b00001100

// ab hier ist DDRA = 0b00001100

a = 1;

DDRA |= a;

// ab hier ist DDRA = 0b00001101!
// die vorherige änderung wird berücksichtigt mit dem |=

"|=" beduetet soviel wie "DDRA = DDRA  (logisch oder) a"

gruß
mike

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