Neustart in C

Hallo!

Zu meiner Schande muss ich gestehen - mein letztes C-Programm ist mindestens 5 oder 6 oder mehr Jahre her. Seitdem nur Assembler.
Jetzt MUSS ich aber eine klitzekleine Kleinigkeit in C schreiben.
In Assembler wars 'ne Sache von Sekunden, aber in C?
Da weiß ich nur noch stdio und geschweifte Klammern *schäm*
Also:
Von einem 8-bit-Port (z.B. „A“) soll Bit 7 eingelesen und negiert auf Bit 0 von Port B ausgegeben werden. Und das in einer Endlosschleife.
Kann mir irgendwer helfen?
Wäre toll!
Danke!

Kalle

Hallo

In Assembler wars 'ne Sache von Sekunden, aber in C?
Da weiß ich nur noch stdio und geschweifte Klammern *schäm*
Also:
Von einem 8-bit-Port (z.B. „A“) soll Bit 7 eingelesen und
negiert auf Bit 0 von Port B ausgegeben werden. Und das in
einer Endlosschleife.
Kann mir irgendwer helfen?

Pseudocode:

...
 int port\_in = 0xA;
 int port\_out = 0xB;
 int END = 0;

 unsigned int cb;
 
 while( (cb = INPORT(port\_in)) != END ) {
 cb \>\>= 7;
 OUTPORT(port\_out, cb & 1);
 }
 ...

Hier wäre allerdings wichtig:

  • LSB/MSB first / Bitanordnung?
  • Konkrete C-Schnittstelle zu den Ports (hier IN/OUTPORT)
  • spezieller code um die Ports zu initialisieren?
  • spezielle Bytesequenz für Ende (hier END) nötig?

Grüße

CMБ