Ich möchte ein Signal bei meinem Arduino MEGA über ADC (10-Bit) einlesen und über meinen 10-Bit DAC TLC5615 per SPI wieder ausgeben.. Das Problem ist dass ich über SPI so senden muss: 16-Bit: xxxx + 10bit Wert + 00 12-Bit: 10bit Wert + 00 Also 4 Dummy bits (MSB), dann den 10bit - Wert und anschließend noch 00. So funktioniert das ganze mit 16-Bit: ---------------------------------------- SPI.transfer(B00001111); (0000 --> dummy bits) SPI.transfer(B11111100); ---------------------------------------- Ausgang geht bei einer REF von 2.5V auf 5V (V=2 DAC)! Nur wie sende ich jetzt den ADC Wert 0-1023 ? 1. Wie wandle ich ihn auf 10-bit Binär um? 2. wie teile ich ihn auf bzw. füge vor die MSBs "0000" hinzu und nach den LSBs noch "00"?
Tom23 schrieb: > 1. Wie wandle ich ihn auf 10-bit Binär um? Dein Controller kennt nur Binär und ist in der Lage diesen in 0 ... 1023 umzuwandeln, damit du es einfacher lesen kannst. Soll heißen du musst nichts umwandeln. > 2. wie teile ich ihn auf bzw. füge vor die MSBs "0000" hinzu > und nach den LSBs noch "00"? Einfach in einer 16-Bit Variablen zurechtschieben mit | und <<. Dann wie bisher die oberen, dann die unteren 8-Bit senden. Siehe auch Bitmanipulation
Er muss nur 2 mal shiften. Die LSBit werden 0, da immer eine 0 nachgeschoden wird und die MSBit sind irrelevant. Dann msst du erst das MSByte und dann das LSByte über SPI versenden. OT: Steht MSB eigentlich für bit oder Byte?
Max H. schrieb: > OT: Steht MSB eigentlich für bit oder Byte? Kommt auf den Kontext an. Bei Betrachtung eines Bytes oder weniger geht man davon aus dass es sich um Bits handelt, bei Wörtern von mindestens zwei Bytes nimmt man es eher als Bytes. Meiner Meinung nach sollte man das einfach MSb und MSB schreiben, dann gäbe es keine Verwechslungsgefahr, aber Menschen sind ja faul was Groß- und Kleinschreibung angeht.
Danke. Ich habs zur Sicherheit eindeutig gemacht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.