Zitat Zitat von Jaecko
Dass du da nur 256 Adressen kriegst, ist bei dem Programm normal, da du als High-Address immer 1 sendest.

Wenn du bei nem grossen Speicher (z.B: 24ST512) alle Adressen ansprechen willst, dann müsste deine Schreibroutine z.B. so aussehen:

Code:
For Y_Hi = 0 To 255
For Y_Lo = 0 To 255  ' Maximal nur 255!!
I2cstart ' IC2 Start 
I2cwbyte &HA0 ' Geräteadresse für EEprom senden 
I2cwbyte Y_Hi ' High Speicheradresse senden 
I2cwbyte Y_Lo ' Low Speicheradresse Senden 
I2cwbyte Y1 ' Epprom mit 255 überschreiben ( löschen) 
I2cstop 
Next Y_Lo
Next Y_Hi
Der schreibt dir dann hier alle Adresse von 0 - 65535 mit dem Wert Y1 voll.

Noch als Tip: Wenn du sequentiell schreiben willst, muss du nicht jedes Mal IC2_Start, Adresse Senden etc. machen.
Es reicht, wenn du die Startadresse schickst und danach die Bytes, die du speichern willst. Geht schneller als so.
Mach ich z.B. beim "formatieren" solcher EEPROMs.
Beim Lesen genau so: wenn du nach dem aktuellen noch ein Byte willst, mit ACK bestätigen; wird das letzte geholt, dann NACK.
Ja , vielen Dank für deine Hilfe, hat mir sehr geholfen.
Wenn ich jetzt die obere Adresse auch anspreche, kann ich auch mehr Adressen verwalten, und die Sache mit dem speichern hat auch prima geklappt.
gruß Nase