Frage

Ich habe mich seit langer Zeit nicht mehr mit dem Programmieren gegen Hardware -Geräte befasst und so ziemlich alle Grundlagen vergessen.

Ich habe eine Spezifikation von dem, was ich ein Byte einsenden sollte, und jedes Bit wird vom bedeutendsten Bit (Bit7) bis zum geringsten (Bit 0) definiert. Wie baue ich dieses Byte? Von MSB bis LSB oder umgekehrt?

War es hilfreich?

Lösung

Wenn diese Bits "verpackt" werden (was sie normalerweise sind), dann ist die Reihenfolge der Bits die native Reihenfolge, 0 ist die LSB und 7 der MSB. Bits werden normalerweise nicht nach eins gesendet, sondern als Bytes (normalerweise mehr als ein Byte ...).

Entsprechend Wikipedia, Bit Ordering kann manchmal von 7-> 0 liegen, aber dies ist wahrscheinlich der seltene Fall.

Andere Tipps

Wenn Sie das gesamte Byte gleichzeitig schreiben wollen, dh eine parallele Übertragung im Gegensatz zu einer Serie durchführt, spielt die Reihenfolge der Bits keine Rolle.

Wenn die Übertragung ist Seriell, dann müssen Sie herausfinden, welche Bestellung das Gerät erwartet, wenn die Teile von außen von außen angezeigt werden können.

Um einfach ein Byte aus acht Bits zusammenzustellen, verwenden Sie einfach bitweise oder addieren Sie Bits nacheinander:

byte value = 0;

value |= (1 << n);  // 'n' is the index, with 0 as the LSB, of the bit to set.

Wenn die Spezifikation MSB besagt, erstellen Sie es MSB. Andernfalls bauen Sie es LSB, wenn die Spezifikation LSB sagt. Fragen Sie ansonsten um weitere Informationen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top