Du musst dir darüber im klaren sein, dass ein
1 | ....
|
2 |
|
3 | PINB & 0x40
|
4 |
|
5 | ....
|
eben nicht 0 oder 1 ergibt, sonder 0 oder 0x40, je nachdem ob dieses Bit
gesetzt ist oder nicht.
D.h. du musst dir bestimmen um wieviele Bits du ein mögliches 1-Bit
jedes Teilausdrucks du nach links oder rechts schieben musst, damit es
an der Zielposition zu liegen kommt
Beispiel:
Wenn das das interessierende Bit ist
1 | 7 6 5 4 3 2 1 0
|
2 | +---+---+---+---+---+---+---+---+
|
3 | | | | | | X | | | |
|
4 | +---+---+---+---+---+---+---+---+
|
und du möchtest es im 16-Bit Ziel an diese Position haben
1 | 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
|
2 | +---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+
|
3 | | | | | X | | | | | | | | | | | | | |
|
4 | +---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+
|
dann musst du das Bit um 9 Positionen nach links verschieben