Gast
#6541710
Hallo zusammen, Ich benutze das erste Mal die i2c Library und habe eine Verständnisfrage zu dem Beispiel in i2cmaster.h: Definiert ist: #define Dev24C02 0xA2 // in i2cmaster.h #define I2C_READ 1 // in i2cmaster.h #define I2C_WRITE 0 // in i2cmaster.h Im Beispiel steht: i2c_start_wait(Dev24C02+I2C_WRITE); // set device address and write mode Dev24C02+I2C_WRITE ist nach meiner Rechnung 0xA2 + 0 = 0xA2 (8 bits) Dev24C02+I2C_READ ist nach meiner Rechnung 0xA2 + 1 = 0xA3 (8 bits) ok, das funktioniert! Das letzte bit ist 0 oder 1, davor steht die Adresse. Was ist aber bei einer Adresse wie 0x44 ? Da ergibt die Rechnung ja nur 7 bits: 0x44 + 0 = 0x44 (7 bits) 0x44 + 1 = 0x45 (7 bits) Sollte das nicht (Adresse << 1) bzw (Adresse << 1 + 1) heissen ? Eigentlich ist die Adresse von einem 24C02 EEPROM ja auch 0x50 bis 0x57.