Florian schrieb:
> Hab ich natürlich schon gelesen ;)
> Wenn sich die Variable aber ändert, muss ich doch auch anders
> verknüpfen, also |= oder &= zum setzen und löschen oder? Oder aber ich
> versteh da was nicht... sorry, haste n tip?
Du musst dir klar machen, dass es keine einzelne einfache Operation
geben kann, die das gewünschte leistet.
Denn: einmal musst du das Portbit auf 0 setzen und ein anderes mal musst
du es auf 1 setzen, je nachdem welchen Wert das korrespondierende Bit in
der Variablen hat.
Wenn du dich dann zu dieser Erkentnis durchgerungen hast, was hindert
dich an
if( Bit in Variable == 0 )
lösche das Portbit
else
setze das Portbit
und für das andere Bit in der Variablen demenstprechend gleich.
Das ist die einfache kanonische Variante. Da bei dir Variablenbit und
Portbits offenbar an den gleichen Bitpositionen sind, gibt es auch noch
die schnellere Variante:
setze beide Portbits auf jeden Fall erst mal auf 0
maskiere dir aus der Variablen die beiden interessiernden Bits heraus
verodere den Port mit diesen herausmaskierten Bits
und wenn du jetzt noch das Problem hast, dass der Port zwischendurch
kurzzeitig einen ungültigen Zustand hat, den du nicht haben darfst, dann
kannst du immer noch eine Variable zu Hilfe nehmen, in die du zunächst
den Zustand des Ports einliest, dort dann die Manipulation machst und
dann den kompletten Portinhalt aus dieser Hilfsvariablen wieder neu
setzt.