Beim Schreiben ist R/W 0 (0x50), beim Lesen 1 (0x51).
Hallo
Ich hab eine Verständnissfrage. Und zwar will ich diesen EEPROM im I²C ansteuern
->http://www.conrad.de/goto.php?artikel=160997
Im Datenblatt steht ja die Adresse so:
1 0 1 0 A2 A1 A0 R/W
(http://www2.produktinfo.conrad.com/d...1-en-24C16.pdf)
Wenn ich nun alle Adressleitungen also A2-A0 an GND liegen habe ist die Adresse ja:
1 0 1 0 0 0 0 R/W
Was setze ich den für die Hex berechnung für R/W ein? Weil im moment würde der Code ja &H50 sein-
Danke für die Hilfe
Beim Schreiben ist R/W 0 (0x50), beim Lesen 1 (0x51).
#ifndef MfG
#define MfG
Achso. D.h. ich muss einfach nur wenn ich die Zahl 4 auf das EEPROM schreiben will sagen das die Adresse &H50 ist und wenn ich diese Zahl auslesen will muss ich &H51 schreiben?
Genau so.
Ich machs immer so, dass ich die Adresse z.B. so angeb:
I2C_WriteByte(0x50 + I2C_WRITE) bzw. I2C_ReadByte(0x50 + I2C_READ),
wobei I2C_WRITE = 0 und I2C_READ = 1 ist.
#ifndef MfG
#define MfG
Wie kommt den das 0x50 zustande?
0x50 = &H50 = 50h... je nach Compiler.
Dezimal jedes mal 80.
#ifndef MfG
#define MfG
Ahh ok ..... hab mir sowas in der Richtung schon gedacht.
So und ich hab dann direkt noch eine Frage. Wie funktioniert das mit dem Speichern der Daten in dem EEPROM? Ich hab mir da jetzt ein Programm zusammengezimmert wo ich was eingebe und das im EEPROM gespeichert wird und dann per Print ausgegeben wird. Allerdings zeigt er jedesmal 0 oder 255 an..... . Ist das richtig so?
Kommt drauf an...
Wie sieht das Programm aus und was steht schon im EEPROM drin? Wenn er noch unbeschrieben ist, ist die Antwort von jeder Speicherzelle 0xFF = 255.
Welche Befehlssequenz zum schreiben/lesen gebraucht wird, steht im Datenblatt.
#ifndef MfG
#define MfG
So sieht das Programm aus. Hab ich da evtl. einen Denkfehler gemacht?Code:$regfile = "m32def.dat" $crystal = 16000000 'SDA und SCL definieren Config Sda = Portc.1 Config Scl = Portc.0 Dim X As Word Dim A As Byte Dim B As Byte Dim Lesen As Word CLS Do ' Input "Eingabe:" , X I2cstart I2cwbyte &HA0 I2cwbyte X I2cstop Waitms 1000 '--- lesen vom EEprom ---- I2cstart I2cwbyte &HA0 I2cstart I2cwbyte &HA1 I2crbyte X I2cstop Print Lesen Loop End
Lesezeichen