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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.