Mega8-Bascom und Datenfeldproblem

OP #357024
Lesenswert?

Hallo noch ein Mal.

Den Fehler im meinem Programm habe ich so weit eingegrenzt, dass nur
dieser Teil übriggeblieben ist.

================
Declare Sub Datensatzsichern_i2c(byval Datenwert1 As Word , Byval
Datenwert2 As Word , Adrese_byte_write As Word)

Dim Temp As Byte
Dim Seitenadresse_write As Byte
Dim Dw1 As Word
Dim Dw2 As Word
Dim Anzahl_write As Word
Dim Write_puffer(64) As Byte

   Anzahl_write = 0
   Temp = 1

   Dw1 = 999 + Temp
   Dw2 = 1999 + Temp
   Call Datensatzsichern_i2c(dw1 , Dw2 , Anzahl_write)

Print "WP1= " ; Write_puffer(1)
Print "WP2= " ; Write_puffer(2)
Print "WP3= " ; Write_puffer(3)
Print "WP4= " ; Write_puffer(4)
Print " "

Do

Loop

Sub Datensatzsichern_i2c(byval Datenwert1 As Word , Byval Datenwert2 As
Word , Adrese_byte_write As Word)

Print "DW1 V=" ; Datenwert1
Print "DW2 V=" ; Datenwert2
Print " "

   Seitenadresse_write = 0
   Incr Seitenadresse_write
   Write_puffer(seitenadresse_write) = Low(datenwert1)
   Incr Seitenadresse_write
   Write_puffer(seitenadresse_write) = High(datenwert1)
   Incr Seitenadresse_write
   Write_puffer(seitenadresse_write) = Low(datenwert2)
   Incr Seitenadresse_write
   Write_puffer(seitenadresse_write) = High(datenwert2)

End Sub
================

Dem Sub-Programm werden 2 Datenworte (Datenwert1 und Datenwert2) als
Word übergeben. Es soll diese Datenworte in ein Byte-Datenfeld
hineinschreiben. Angeblich tur es auch.
Aber wenn ich die Inhalte der einzelnen Feldadressen über UART zur
Anzeige bringe siht die Sache anders aus.

Datenwert1 = 1000 ist korrekt geschrieben.
Write_puffer(1) = 232
Write_puffer(2) = 3
macht zusammen 1000

Datenwert2 = 2000 ist nicht korrekt geschrieben.
Write_puffer(3) = 102
Write_puffer(4) = 0
Das ergibt natürlich nicht den korrekten Wert 2000. Sondern nur 102.

Wenn ich im Sub die Datenworte zur Anzeige bringe, sehe ich wiederum
dasselbe:
Datenwert1 = 1000
Datenwert2 = 102 anstatt 2000.

Kann mir bitte jemand helfen, wo ich einen Fehler mache?

Schöne Grüsse

Ali

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren