Hallo!
Meine verzwickte Lage: ein Display(Lascar 973b) und ein
Entwicklungsboard (STK600)ist per 8-pol-Flachbandkabel verbunden.
Dieses Kabel verbinden einen kompletten Port des µC mit einem (/dem)
kompletten Port des Displays. Dadurch sollen Bytes direkt parallel
versendet werden.
Das Problemchen: die Steckerbelegung des Displayanschlusses ist eine
andere als die des Entwicklungsboards: hier linksrechtslinksrechts...
dort rechtslinksrechtslinksrechtslinks... Würde man Bit 1/2; 3/4; 5/6;
7/8 tauschen, wäre alles gut, ich kann die Stecker aber nicht umbelegen.
Die folgende, separierte, vorhandene Prozedur (kleiner Teil einer dicken
library) sendet ein Byte an das DMX973 definierte PORTB.
1 | #define DMX973 PORTB
|
2 |
|
3 | void dmx973_byte (unsigned char data )
|
4 | {
|
5 | DMX973 = data;
|
6 | }
|
Frage: wie baue ich in das Makro eine Maskierung und Verschiebung ein,
um die betreffenden Bits auszutauschen?