mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mega8-Bascom und Datenfeldproblem


Autor: Ali Öz (ali)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.