Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] Datenrichtungsregister
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, 13: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
Hallo Radbruch,
Danke für die schnelle "genaue" Antwort.
MfG
roy-sam
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.