Bits ändern
-
Wie kann ich das Bit0 und Bit1 an einem Port 0 (oder 1) setzen, ohne die anderen Bits zu verändern??? Die adresse des Ports ist 0x61 ("PIO 8255").
Hab echt keine ahnung!Bitte dringend um Hilfe!!!
-
portBits|=1;
-
eigentlich ist das keine c++-frage...
ich kenn die PIO 8255 ja nicht persönlich
, aber meistens ist es bei den port-registern von POI's so, das man dei seriellem io beim lesen auf das register des eingabekanals und beim schreiben das register des ausgabekanals zugreift. lesen und schreiben sind verschiedene register! bei parallelem io können die leitungen (bits) normalerweise über ein separates register einzeln auf ein- oder ausgabe geschaltet werden. beim lesen der auf ausgabe geschalteten bit bekommst du dann nichts vernünftiges.
das heißt im klartext: wenn du nur einzelne bits ändern willst, dann muß dein programm sich in einer variable die letzten in das register geschriebenen daten merken, die gemerkten bits in der variable ändern, und anschließend den inhalt der variable in das port-register schreiben.
EDIT
portBits|=1;
geht deshalb idr nicht!
-
Du mußt das Manual deines I/O Bausteins lesen. Wenn die Register Read/Write sind, dann geht REG |= BITS zum setzen und REG &= ~BITS zum löschen (oder umgekehrt).