Seite 1 von 1

Bit Shifting

Verfasst: Montag 7. März 2022, 21:17
von Bl3nder
Schönen guten Tag,

Ich habe eine kurze Frage und zwar habe Ich folgenden Baustein :
https://www.ti.com/lit/ds/symlink/adcs7 ... e.com%252F es geht hier um Seite 10.

Ich habe es zwar hinbekommen diesen auszulesen jedoch verstehe Ich nicht genau wieso Ich lade das Ergebnis in 2 Byte was 16 Bit entspricht.

Das mache Ich daher weil der Baustein 12Bit hat + 4 "leading Zeros" wieso muss Ich danach den Inhalt des 1Bytearry um 8 Bit verschieben das verstehe Ich leider nicht.

Mein Gedanke:
Mal angenommen der Messwert wäre der max dann denke Ich das würde so aussehen

Code: Alles auswählen

print(bin(0b000111111111 << 8))
Ergebnis:

Code: Alles auswählen

0b11111111100000000
?????

Und warum muss Ich dann die 2 Bytearrys oder am ende vergleichen ( es gibt eine Bibliothek da wird das so gemacht nur ich wollte verstehen was da genau passiert )

https://forum.digilentinc.com/topic/176 ... i-arduino/

Ich danke euch

Re: Bit Shifting

Verfasst: Montag 7. März 2022, 21:25
von LukeNukem
Bl3nder hat geschrieben: Montag 7. März 2022, 21:17 Mal angenommen der Messwert wäre der max dann denke Ich das würde so aussehen

Code: Alles auswählen

print(bin(0b000111111111 << 8))
Ergebnis:

Code: Alles auswählen

0b11111111100000000
?????
Du shiftest eine Folge von acht 1-Bits um acht Stellen nach links, insofern ist das Ergebnis vollkommen korrekt -- allerdings verschluckt die Ausgabe die nicht signifikanten führenden Nullen, genau wie 015 ja auch einfach 15 ist. Wie liest Du den ADC denn aus, und was steht dann in Deiner Variablen?

Edit: Nachfrage hinzugefügt.

Re: Bit Shifting

Verfasst: Montag 7. März 2022, 21:49
von Bl3nder
Ich verstehe nicht wieso ich um 8 Bits nach links Shifte und mein Code sieht ca aus wie auf dem unteren link .Dieser funktioniert auch ich verstehe den Zusammenhang halt nur nicht .

Re: Bit Shifting

Verfasst: Montag 7. März 2022, 22:10
von Sirius3
Du hast zwei 8bit-Werte aaaaaaaa und bbbbbbbb und willst daraus einen 16bit-Wert berechnen:
1. aaaaaaa << 8 -> aaaaaaaa00000000
2. aaaaaaaa00000000 | bbbbbbbb -> aaaaaaaabbbbbbbb

Re: Bit Shifting

Verfasst: Montag 7. März 2022, 22:24
von Bl3nder
Ich danke dir Sirius so macht es natürlich Sinn :)