Long Variable in I2C-EEprom schreiben und wieder lesen ?
Hallo Leute
Habe da ein kleines Problem.
Ich möchte eine Long Variable in ein I2C EEprom schreiben und wieder lesen.
Leider mache ich da irgendwie eine Fehler.. :-k
Habe das bis jetzt nur mit Word-Variablen gemacht.
Jetzt kann die Zahl aber auch negativ sein.
Die zerlegung habe ich wieder mit Overlay gemacht:
Code:
Dim Koordinate As Long At $162
Dim Koordinate_teil1 As Byte At $162 Overlay
Dim Koordinate_teil2 As Byte At $163 Overlay
Dim Koordinate_teil3 As Byte At $164 Overlay
Dim Koordinate_teil4 As Byte At $165 Overlay
Es kommt aber nur Müll beim Lesen raus.(EEprom)
Darum habe ich mir mal Werte ohne EEprom auf das LCD schreiben lassen:
Wert: 45 = 45 , 000, 000 , 000
Wert 294= 38 , 001, 000 , 000
Also Ok
Wert -13 = 243, 255 , 255 , 255
Wert -313= 199, 254 , 255 , 255
Wie kriege ich da wieder eine Minus-Zahl raus ??
Andere Frage:
Ins EEprom schreibe ich normal so:
Code:
I2cstart 'Start
I2cwbyte &B10100010 'Sende Slavadresse
I2cwbyte High_adresse 'Sende Speicheradresse High
I2cwbyte Low_adresse 'Sende Speicheradresse LOW
I2cwbyte Wert 'Sende Wert
I2cstop 'stop
Kann man das dann bei 4Byte hintereinander auch so schreiben: ?!
Code:
I2cstart 'Start
I2cwbyte &B10100010 'Sende Slavadresse (Adresse für A0=EIN)
I2cwbyte High_adresse 'Sende Speicheradresse High
I2cwbyte Low_adresse 'Sende Speicheradresse LOW
I2cwbyte Koordinate_teil1 'Sende Wert
I2cwbyte Koordinate_teil2 'Sende Wert
I2cwbyte Koordinate_teil3 'Sende Wert
I2cwbyte Koordinate_teil4 'Sende Wert
I2cstop 'stop
b.z.w. so lesen : ?
Code:
I2cstart 'Start
I2cwbyte &B10100010 'Sende Slavadresse (Adresse für A0=EIN)
I2cwbyte High_adresse 'Sende Speicheradresse High
I2cwbyte Low_adresse 'Sende Speicheradresse Low
I2cstart 'Start
I2cwbyte &B10100011 'Sende Slavadresse +1 für Schreiben
I2crbyte Koordinate_teil1 'Lese Adresse vom EEprom
I2crbyte Koordinate_teil2 'Lese Adresse vom EEprom
I2crbyte Koordinate_teil3 'Lese Adresse vom EEprom
I2crbyte Koordinate_teil4 , Nack 'Lese Adresse vom EEprom
I2cstop
Bitte um Hilfe O:)
l.G. Roberto