Hi
ich habe leider nicht so viel Erfahrung mit i2c, möchte aber lernen. Ich
benutze eine ATMega 128. ich habe da ein altes EEPROM dran welches noch
keine unterschiedliche Adressierung unterstützt (vielleicht liegt es
auch nicht am alter sondern nur am typ, ist ja egal).
1 | unsigned char ret;
|
2 |
|
3 | i2c_init(); // initialize I2C library
|
4 |
|
5 | // read previously written value back from EEPROM address 5
|
6 | i2c_start_wait(ADRESSE+I2C_WRITE); // set device address and write mode
|
7 |
|
8 | i2c_write(0x05); // write address = 5
|
9 | i2c_rep_start(ADRESSE+I2C_READ); // set device address and read mode
|
10 |
|
11 | ret = i2c_readNak(); // read one byte from EEPROM
|
12 | i2c_stop();
|
Ich habe jetzt Adresse mit 0xAF definiert, bei anderen Adressen bleibt
die routine hängen.
ich benutze twimaster.c und i2cmaster.h aus der lib von peter fleury. An
SDA und SCL habe ich 4,7 kOhm Widerstände dran.
Das problem ist ich bekomme immer ein 0xB0 in die variable ret. egal was
ich auslese.
hat einer eine idee an was es leigen könnte? wenn informationen fehlen
nicht böse sein oder zynisch einfach schreiben was fehlt bitte.