Forum: Mikrocontroller und Digitale Elektronik Mega8-Bascom und Datenfeldproblem


von Ali Ö. (ali)


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

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
Noch kein Account? Hier anmelden.