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:
Ich schreibe also jeweils acht mal hintereinander die binären werte von 1 bis 16 in das EEPROM.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
Raus bekomme ich aber folgendes:
Das ist ja nun nicht ganz das, was ich mir vorgestellt hatte. Sieht irgendwie recht wild aus.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
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!