Hallo alle zusammen.

Da ich noch einen alten 24C01 mit 128 Byte Speicher rumliegen hatte, wollte ich mal testen, ob ich den zu laufen bekommen. Ich ahbs schon geschaft Daten zu schreiben und zu lesen.
Es kommt nur leider irgendwie nicht so richtig das raus, was ich auch hineingeschrieben habe.

Mein Quelltext sieht wie folgt aus:
Code:
$regfile = "m16def.dat"
$crystal = 16000000
$baud = 38400

Config Sda = Portc.1
Config Scl = Portc.0
Config I2cdelay = 10

Dim A As Byte
Dim B As Byte
Dim Lesen As Byte
Dim I As Byte

Do

'---- schreibe in EEprom ----

For A = 1 To 16

I2cstart
I2cwbyte &HA0
I2cwbyte A
For I = 1 To 8
I2cwbyte A
Next I
I2cstop
Waitms 10
Next A


'--- lesen vom EEprom ----
For B = 1 To 16

I2cstart
I2cwbyte &HA0
I2cwbyte B

I2cstart
I2cwbyte &HA1
For I = 1 To 7
I2crbyte Lesen , Ack
Printbin Lesen
Next I
I2crbyte Lesen , Nack
Printbin Lesen
I2cstop

Waitms 50
Next B
Wait 2

Loop

End
Ich schreibe also jeweils acht mal hintereinander die binären werte von 1 bis 16 in das EEPROM.
Raus bekomme ich aber folgendes:
Code:
007 007 007 007 007 007 007 015 007 007 007 007 007 007 015 015 007 007 007 007 007 015 015 015 007 007 007 007 015 015 015 015 007 007 007 015 015 015 015 015 007 007 015 015 015 015 015 015 007 015 015 015 015 015 015 015 015 015 015 015 015 015 015 015 015 015 015 015 015 015 015 016 015 015 015 015 015 015 016 016 015 015 015 015 015 016 016 016 015 015 015 015 016 016 016 016 015 015 015 016 016 016 016 016 015 015 016 016 016 016 016 016 015 016 016 016 016 016 016 016 016 016 016 016 016 016 016 016
Das ist ja nun nicht ganz das, was ich mir vorgestellt hatte. Sieht irgendwie recht wild aus.

Hab vielleicht jemand ne Ahnung woran das liegen könnte. Ich muss zugeben, dass ich zum ersten mal mit nem EEPROM arbeite. Ist da eventuell ein Fehler in meinem Quelltext? Es kommt immer nur das richtige raus, wenn ich 128 mal den selben Wert ins EEPROM lade.

Ich bin euch für jeden Tipp dankbar!