Hallo Leute,
möchte o.g. EEPROM zur Speicherung von Daten verwenden.
Habe es mit dem unteren Code auch schon für den 24C16 hinbekommen.
Nun bin ich etwas ratlos, wie das mit dem 24C512 gehen soll. Speziell die ADressierung und dann die Adresse auswählen bei diesem Teil.
Hat da jemand eine Idee, oder vielleicht schon mal gemacht - und kann mir mit Codeschnipseln helfen??
Hier mein Code für den 24C16, habe ich glaube auch dem Robonetz...
Vielen Dank im Voraus.Code:im Adresse As Word 'Die Adresse als Word-Variable (0...65535); hier nur 0...2048 nötig Dim Slave As Byte 'siehe Text '****************************Unterprogramm Schreiben '---- schreibe in EEprom ---- Schreiben: For X = 1 To 6 Select Case Adresse 'Erklärung siehe Datei "Adressierung des 24C16" Case 0 To 255 : Slave = &HA0 Case 256 To 512 : Slave = &HA2 Case 513 To 768 : Slave = &HA4 Case 769 To 1024 : Slave = &HA6 Case 1025 To 1280 : Slave = &HA8 Case 1281 To 1536 : Slave = &HAA Case 1537 To 1792 : Slave = &HAC Case 1793 To 2048 : Slave = &HAE End Select I2cstart 'Start I2C I2cwbyte Slave 'Sende Slave Adresse I2cwbyte Adresse 'Sende Speicheradresse High I2cwbyte Buffer(x) 'Sende Wert I2cstop 'Stop I2C Waitms 10 'warte 10ms Incr Adresse 'nächste Speicheradresse Next Return '****************************Ende Unterprogramm '***************************Unterprogramm Lesen '--- lesen vom EEprom ---- Lesen: 'Adresse = Adresse - 6 'von aktueller Adresse wieder 6 Adressen rückwärts For X = 1 To 6 Select Case Adresse Case 256 To 512 : Slave = &HA2 Case 513 To 768 : Slave = &HA4 Case 769 To 1024 : Slave = &HA6 Case 1025 To 1280 : Slave = &HA8 Case 1281 To 1536 : Slave = &HAA Case 1537 To 1792 : Slave = &HAC Case 1793 To 2048 : Slave = &HAE End Select I2cstart 'Start I2C I2cwbyte Slave 'sende Slave Adresse I2cwbyte Adresse 'Sende Speicheradresse High I2cstart 'Start I2C I2cwbyte &HA1 'sende Slave Adresse +1 für lesen I2crbyte Buffer_ee(x) , Nack 'lese Adresse vom EEprom I2cstop 'Stop I2C Waitms 10 Incr Adresse Next Adresse = Adresse + 6 'Adresse wieder auf ursprünglichen Wert setzen Return '*************************** Ende Unterprogramm
Andreas







Zitieren

Lesezeichen