Ich hab es jetzt mit Pausen versucht, aber auch das änderte überhaupt nichts. Ich glaube auch nicht, dass beim Lesen oder Schreiben Fehler auftreten, dass also falsche Werte ins EEPROM geschrieben oder gelesen werden.
Hir nochmal mein aktueller Quellcode:
Code:
$regfile = "m16def.dat"
$crystal = 16000000
$baud = 38400
Config Sda = Portc.1
Config Scl = Portc.0
Config I2cdelay = 20
Dim A As Byte
Dim B As Byte
Dim Lesen(8) As Byte
Dim I As Byte
Dim X As Byte
Dim Schreiben(8) As Byte
Dim Temp As Byte
I2cinit
Do
X = 1
'---- schreibe in EEprom ----
For A = 1 To 16
I2cstart
Waitms 5
I2cwbyte &HA0
Waitms 5
I2cwbyte A
Waitms 5
For I = 1 To 8
I2cwbyte X
Waitms 5
Incr X
Next I
I2cstop
Waitms 20
Next A
'--- lesen vom EEprom ----
For B = 1 To 16
I2cstart
Waitms 5
I2cwbyte &HA0
Waitms 5
I2cwbyte B
Waitms 5
I2cstart
Waitms 5
I2cwbyte &HA1
Waitms 5
For I = 1 To 7
I2crbyte Lesen(i) , Ack
Waitms 5
Next I
I2crbyte Lesen(8) , Nack
Waitms 5
I2cstop
Waitms 50
For I = 1 To 8
Temp = B * 8
Temp = Temp - 8
Temp = Temp + I
Schreiben(i) = Temp
Next I
'Printbin Schreiben(1)
Printbin Lesen(1)
Next B
Wait 2
Loop
End
Und hier mal das, was ich dann beim lesen erhalte: (jede Zeile entspricht einer Page zu je 8 Byte)
Code:
051 052 053 054 055 056 049 114
052 053 054 055 056 049 114 115
053 054 055 056 049 114 115 116
054 055 056 049 114 115 116 117
055 056 049 114 115 116 117 118
056 049 114 115 116 117 118 119
049 114 115 116 117 118 119 120
114 115 116 117 118 119 120 113
115 116 117 118 119 120 113 121
116 117 118 119 120 113 121 122
117 118 119 120 113 121 122 123
118 119 120 113 121 122 123 124
119 120 113 121 122 123 124 125
120 113 121 122 123 124 125 126
113 121 122 123 124 125 126 127
121 122 123 124 125 126 127 128
Für mich sieht das so aus, als würde der EEPROM beim Lesen oder Schreiben "verrutschen". Wie finde ich denn heraus, ob der Fehler beim Lesen oder beim Schreiben liegt, oder ob möglicherweise beide Routinen fehlerhaft sind?
Ich danke euch für eure bisherige Hilfe, auch wenn der Fehler noch immer nicht beseitigt ist.
Bin auch weiterhin für jeden Tipp dankbar.
Lesezeichen