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.