PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] Datenrichtungsregister



roy-sam
03.04.2011, 11:26
Hallo,
wenn ich "DDRC|=PC_7" schreibe ist Pin 7 als Ausgang bestimmt.
Warum ergibt "|=" eine 1 und "&=~" eine 0:confused::confused::confused:
Gibt es dazu eine genaue Erklärung?

Danke:)
roy-sam

radbruch
03.04.2011, 12:39
Hallo

PC_7 steht für (1<<7), also ein "leeres" Byte in dem eine 1 siebenmal nach links geschoben wurde. (1<<0) ist dual 0b0000 0001, (1<<1) ist 0b0000 0010 usw. bis (1<<7) oder 0b1000 0000.

|= oder &= ist eine Verkürzung der Schreibweise, ausgeschrieben wäre das "DDRC = DDRC | PC_7" bzw. "DDRC = DDRC & ~PC_7". Das Datenrichtungsregister wird eingelesen, mit dem Bitmuster (Maske) verknüpft und das Ergebniss wird in das Datenregister zurückgeschrieben. Nur die in der Maske gesetzen Bits (die welche High sind) werden dabei beeinflußt. Die Tilde ~ bewirkt, dass im nachfolgenden Wert die jeweiligen Bits invertiert werden. Wenn alle Bits des Datenrichtungsregisters den Wert der Maske annehmen sollen, dann verwendet man besser die Zuweisung "DDRC = maske".

Ich hoffe, diese kurze Erklärung ist genau genug ;)

Gruß

mic

roy-sam
03.04.2011, 12:53
Hallo Radbruch,

Danke für die schnelle "genaue" Antwort.

MfG
roy-sam