Ich hab zwar nur Erfahrung mit dem SAB C165 von Infineon, vielleicht kann
ich dir ja trotzdem helfen.
Meistens gibt es (muss aber nicht sein) ein Direction Port Register DPx.x, dort kannst
du die Richtung des Ports einstellen (Input/Output Port). Heisst also: wenn
du das 4.Bit des 5. Ports (P3.5) im DP3.5 als Eingang einstellst, so kannst du
dieses Bit nur als Eingang benutzen. (Und umgekehrt im Output modus)
Kann aber auch sein dass du beim C515 Ports gleichzeitig als In und Output verwenden kannst.
Da würde ich mal die Doku von deinem Controller zu rate ziehen. (Da steht diese ganze Sache auch haarklein beschrieben)
Wenn diese Sache geklärt ist (I/O Geschichte), dann kannst du diese 2 Bits (4/5) mittels
sbit (Special Function Register Bit) definieren:
sbit P3.5 DiesistBitFünfvonP3;
sbit P3.4 DiesistBitViervonP3;
Damit hast du also die Bits P3.5 und P3.4 als "DiesistBitFünfvonP3" und "DiesistBitViervonP3" definiert, heisst du kannst mit ihnen in C so umgehen
als wären sie normale boolsche Variablen (1 und 0 - Zustand high/low - Strom da, nicht da)
So kannst du dann zum Beispiel damit umgehen:
DiesistBitFünfvonP3 = DiesistBitViervonP3;
Damit weist du P3.5 den aktuellen Wert von P3.4 zu. Wenn P3.4 also momentan high ist, legt dein Controller am P3.5 auch high an usw.
Also als wären es ganz normale Variablen.
Vielleicht konnt ich dir helfen, die beste hilfe bietet dir aber sicherlich
die Doku deines Controllers und des Keil Compilers :)
Gruss IDE-ATAPI