Hallo Leute,
ich habe hier eine Schreibweise mit dem Bitoperator "<<" die mir nicht einleuchtet.
Der Bitoperator: "<<" macht ja nicht anderes als einen bestimmten Wert um einen Wert nach links zu schieben.
Bsp: (1 << 5) hier wird einfach der Wert "1" um n-Stellen in diesem Fall: "5" nach links geschoben.
Soweit ist mir alles klar.
Nur diese Schreibweise verstehe ich nicht:
DDRD |= (1<<PD5);
Erklärung:
Hier wird die "1" um "PD5" nach links geschoben.
Danach wird der Wert der sich im "DDRD-Register" befindet mit dem Wert "(1<<PD5)" ODER-Verknüpft und wieder in das DDRD-Register gespeichert.
Dies ist das "|=".
Das ganze soll den PD5-Pin vom Port: "D" auf 1 setzen also auf Ausgang schalten.
HÄ??
„PD5“ ist ja im Hintergrund nichts anderes als ein Binär-Wert wie z.B.: 01101000 (nur fürs Verständnis).
Dieser Wert wird dann mit irgendeinen Wert der im DDRD-Register steht ODER-Verknüpft und dann wieder in DDRD abgespeichert.
Da kommt doch irgendein Wert heraus, wie soll das den PIN: PD5 auf 1 setzen??
Wenn er schreiben würde: (PD5 == 1) dann ist dieser Pin als Ausgang definiert.
Ich verstehe das nicht.
MfG
Lesezeichen