Hallo zusammen,


ich komme hier nicht weiter.

Ich habe zwei Mega8 die ständig mit einander über RS232 kommunizieren.

Ich habe nun Long-Variablen die ich in Bytes zerlegen, über RS232 senden und auf der Gegenseite wieder zusammenbauen möcht.

Also die Kommunikation über RS232 mit Startbyte, Array und Checksum funktioniert alles einwandfrei.

Momentan gehe ich bei der Zerlegung der Variablen "mathematisch" vor. Das ist glaub ich weder effektiv noch elegant und ein Resoursenfresser.

Ich habe es bisher so beim Sender:

Code:
....

Dim Eu as Long
Dim Eur1 as Long
Dim Eur2 as Long
Dim Eur3 as Long

Dim Eu1 as Byte
Dim Eu2 as Byte

'als Beispiel nur eine der insgesamt 7 Variablen des Arrays

Eu= 89800          'Beispielwert

Eur1 = Eu / 255
Eur3 = Eur1 * 255
Eur2 = Eu - Eur3

Eu1 = Eur1
Eu2 = Eur2

'geht das da oben nicht einfacher??????????


C = 0
D = 0

Stb = 233

B(1) = VariableX
B(2) = VariableA1
B(3) = VariableA2 
B(4) = T1 
B(5) = T2
B(6) = Eu1
B(7) = Eu2


For D = 1 To 7
 C = C Xor B(d)
Next
Printbin Stb ; B(1) ; C

Senden und Empfangen ist kein Problem!
Mir ist wichtig das ich die Bytes der "aufgeteilten" Variablen ganz klar unterseiden kann. Also am liebsten so.

B(6) = Teil eins der Variablen EU
B(7) = Teil zwei der Variaben EU

Hier der Empfänger:

Code:
......
Dim Eu As Long
Dim Euneu3 As Long
Dim Euneu2 As Byte
Dim Euneu1 As Byte

' hier werden die Daten empfangen----

Euneu3 = Euneu1 * 255
Euneu = Euneu3 + Euneu2
Ich hab irgendwie was von SHIFT usw. gelesen. Aber irgendwie peil ich das gar nicht.

Wie geht das denn einfacher, ohne viele Variablen zu "verbraten" und mir den Controller zukleistere?

Gruß
Markus