PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wert auf drei Byte's aufteilen



elkokiller
20.01.2009, 19:07
Hallo,

ich messe eine Temperatur und möchte diese seriell in drei Bytes übertragen.
Da die Temperatur im Messbereich von -30 bis +70 liegt, sollte dies eigentlich problemlos machbar sein.

Ein Wert von -28,05 soll z.B. Byte1(001), Byte2(028), Byte3(050) aufgeteilt werden wobei ich im ersten Byte nur zwischen + und - unterscheiden muss.

Kann mir jemand sagen wie ich den Zahlenwert aufteilen kann?
Oder hat vielleicht jemand eine Idee wie es anders zu machen ist?

Gento
20.01.2009, 22:47
Warum nimmst Du nicht

Wert = (Temperatur + 30) x 100


das sind im Hexbereich 00 00 00 bis 00 27 10 und es würden sogar 2 Byte reichen.

Gento

elkokiller
21.01.2009, 20:26
Die Berechnung ist o.k.
So komme ich aus dem negativen Bereich raus.
So ist der Wertebereich von 0 bis 10000.

Und wie gehts jetzt weiter?
Ich kann als Byte doch nur Werte zwischen 0 und 255 übertragen!

Gento
21.01.2009, 20:44
*Kratz mich*

in Delphi und Bascom ?

Hoherwert = temperatur Div 255
Tieferwert = temperatur Mod 255 = Rest

Sonst greif auf jeden in Bascom schieben rechts und links in Verbindung einander.

Ich müßte mal genauer nachsehen , z.Z. aber keine Zeit

Gento

Dirk
21.01.2009, 21:00
So ist der Wertebereich von 0 bis 10000. Und wie gehts jetzt weiter?
Da reichen dann also sogar 2 Bytes für die Übertragung aus.
Fürs Übertragen gibt es verschiedene Möglichkeiten, z.B.:
Dim Db1 As Byte
Dim Db2 As Byte
Dim Messwert As Integer At Db1 Overlay
Messwert = 10000
'Sende Db1
'Sende Db2

Gruß Dirk

elkokiller
21.01.2009, 21:00
das verstehe ich noch immer nicht,

meld dich einfach noch mal wenn du mehr Zeit hast

Gento
21.01.2009, 23:50
Zeig doch mal den Code vom Einlesen :

Da die Temperatur im Messbereich von -30 bis +70 liegt, sollte dies eigentlich problemlos machbar sein.

In was für Variablen Du die Temperatur Werte Speicherst.

Gento

elkokiller
22.01.2009, 18:20
Sorry,

hatte den Beitrag von Dirk gar nicht gesehen.
Jetzt ist es klar!

Danka an euch beide