Peter II schrieb:
> Sagt doch erstmal genau welches Format du am ende brauchst?
Ich versuche es noch einmal: Es geht um die Kommunikation zwischen
Roboter und PC. Das ganze läuft über eine I/O-Schnittstelle, für die ich
erstmal nur jeweils 1 Byte (also jeweils 8 Kanäle) Eingänge und Ausgänge
betrachte.
Die ersten 4 Bits des Ausgangsbytes (PC->Roboter) enhält die
Programmnummer, die anderen 4 Bits sind Steuerbits.
In den ersten 4 Bits des Eingangsbytes (Roboter->PC) liegt die
"verstandene" Programmnummer zur Kontrolle, die anderen 4 Bits sind
sonstige Zustände.
Ausgabe:
Wie hier beschrieben, habe ich bereits eine Funktion, die mir meine
gewünschte Programmnummer in Bits zerlegt:
1 | bit_4 = Programmnummer & 0x04; //(Ich will wissen, ob das 4. Bit der Programmnummer HI oder LO ist)
|
2 | if (bit_4 > 0)
|
3 | bit_4=1;
|
Zusätzlich kenne ich meine anderen 4 Steuerbits, die in einem Byte
beibehalten werden sollen. Nun muss ich alle bekannten 8 Bits aus
jeweils einer int-Variable (0 oder 1) zu einem Byte basteln, was ich
ausgeben kann.
Eingabe:
Alle 8 Eingangsbits liegen in jeweils einer int-Variable (0 oder 1). 4
von denen möchte ich in eine Zahl (=Programmnummer)
konvertieren/zusammenfassen.