Erste allgemeine Hintergrundinformationen
Voraussetzung zur Nutzung vieler der I2C Parallelport IC mit dem Raspberry Pi musst du in der Lage sein, die Daten zu manipulieren etwas weiser. Dies geschieht in der Regel in einem Mikro-Controller, aber mit dem Pi gibt es viel mehr Energie für andere Dinge zu tun, so dass wenn Sie die wenig klug Manipulation der Daten beherrschen können Sie sehr mächtige Werkzeuge bauen. Eine sehr häufig wenig klug Aufgabe ist ein bisschen zu wechseln. Für Instanz haben wir eine Bank von Relais, 0010_0100b und wollen, dass das dritte Bit wechseln die derzeit ist ein auf eine Null Weg dazu mit einer exklusiven oder Operation ratsam. In Perl ist dies mit der "^" Karotte Symbol, wo jedes Bit einzeln ge ist. Bei dieser Operation gibt es einen Schlüsselwert, den wir verwenden, genannt eine "Maske" zur Darstellung der Bit oder Bits, denen wir auf betreiben wollen.
Die allgemeine Formel wird wie folgt aussehen
Current_status_byte ^ Mask_byte = New_status_byte
--------------------------------------------------------------------------------------------
Hier ist ein Beispiel zeigt die Binärwerte wo wollen wir das dritte Bit in die Status_byte wechseln
0010_0100 ^ 0000_0100 = 0010_0000
und wenn wir wiederholen Sie den Vorgang erneut können wir das Bit wieder auf umschalten.
0010_0000 ^ 0000_0100 = 0010_0100
------------------------------------------------------------------------------------------------
Eine andere gemeinsame Sache zu tun ist, ein bisschen was wir tun kann, ähnlich wie mit dem bisschen weiser und Funktion zu löschen. Allgemein wird dies ähnlich aussehen, aber wir brauchen, um die Maske für diesen Vorgang zu wechseln
Current_status_byte & Mask_byte_inverted = New_status_byte
Für das numerisches Beispiel
0010_0000 & 1111_1011 = 0010_0000
Nun aber tun wir den Vorgang erneut, das Bit nicht es bleibt klar umschalten
0010_0000 & 1111_1011 = 0010_0000
------------------------------------------------------------------------------------------------
In einer idealen Welt würden Sie wahrscheinlich wollen eine Maske Byte und ergänzen das Masken-Bit in der Formel, so können Sie umschalten oder mit der gleichen Maske Bit löschen. verwenden die wenig klug invertieren. Hier ist ein Weg, um Klartext zu ändern, so dass Sie für beide die gleiche Maske verwenden können
0010_0000 & ~ 0000_0100 = 0010_0000