Eine Variable mit neun Bits? So ganz verstehen tu ich das nicht, ehrlich gesagt.Zitat von Cybererror
Für was soll das Ganze den sein?
Grüße
Thomas
Hallo.
Habe zwei Variablen und brauche von der einen die 8Bits und von der anderen nur ein bit und zwar das erste, Wie bekomme ich die zur einer Variablen mit neun bits?
Versteht ihr mich?
Eine Variable mit neun Bits? So ganz verstehen tu ich das nicht, ehrlich gesagt.Zitat von Cybererror
Für was soll das Ganze den sein?
Grüße
Thomas
für Temperatur Messung, es ist zwar nur der wert für ,5
weiß aber nicht wie ich ihn dazu rechne.
lese es über I2C aus erst datenfeld mir 8 bit und beim zweiten datenfeld brauche ich nur das erste bit (was halt über die ,5 Grad aussagt.)
Wenn du das in der Festpunktdarstellungn speichern möchtest (was du anscheinend vor hast), dann multiplizierst du die 8-Bit Variable mit 2 (oder machst einen logischen Schift nach links (<<)) und addierst das Bit aus der zweiten Variable dazu.
Musst halt drauf achten, an welcher Stelle das Bit in der zweiten Variable steht... wenns an erster Stelle steht (bei der 2^0 Stelle), dann kannst du einfach die ganze Variable dazuaddieren, ansonsten musst du dieses Bit eben dahin schieben.
Oder du machst es mit einer abfrage: if(Var2 > 0) then Var1 = Var1 + 1
Nicht vergessen, dass die entstehende variable in einer 16-bit Variable gespeichert werden muss.
Hoffe es hat dir geholfen
Gruß, Yaro
9-bit Byte gibts zubächstmal nicht ... mal abgesehen von UART,
ergo wird die nächst größere Stufe ein Word (16 Bit) fällig.
wenn du nur ein Bit eines Bytes auswerten willt kannst du das
entweder direkt ansprechen über bytevariable.x oder über
Maskierung extrahieren
bytevariable = bytevariable AND &B00000001
wenn du zwei bytes zusammenfügen willst kannst du das
über Makeint oder am Schnellsten über Overlayvariable
dim wordvariable as word at &ha0
dim lowbyte as byte at &ha0 overlay
dim highbyte as byte at &ha1 overlay
Vor den Erfolg haben die Götter den Schweiß gesetzt
Lesezeichen