Zbernica i2c: Rozdiel medzi revíziami
Z SensorWiki
Riadok 11: | Riadok 11: | ||
+ | |||
+ | <source lang="c"> | ||
+ | |||
+ | |||
+ | #define Dev24C02 0xA2 // device address of EEPROM 24C02, see datasheet | ||
+ | |||
+ | int main(void) | ||
+ | { | ||
+ | unsigned char ret; | ||
+ | |||
+ | i2c_init(); // initialize I2C library | ||
+ | |||
+ | // write 0x75 to EEPROM address 5 (Byte Write) | ||
+ | i2c_start_wait(Dev24C02+I2C_WRITE); // set device address and write mode | ||
+ | i2c_write(0x05); // write address = 5 | ||
+ | i2c_write(0x75); // write value 0x75 to EEPROM | ||
+ | i2c_stop(); // set stop conditon = release bus | ||
+ | |||
+ | |||
+ | // read previously written value back from EEPROM address 5 | ||
+ | i2c_start_wait(Dev24C02+I2C_WRITE); // set device address and write mode | ||
+ | |||
+ | i2c_write(0x05); // write address = 5 | ||
+ | i2c_rep_start(Dev24C02+I2C_READ); // set device address and read mode | ||
+ | |||
+ | ret = i2c_readNak(); // read one byte from EEPROM | ||
+ | i2c_stop(); | ||
+ | |||
+ | for(;;); | ||
+ | } | ||
+ | </source> | ||
[[Category:DVPS]] | [[Category:DVPS]] |
Verzia zo dňa a času 10:00, 6. december 2012
K. Zbernica i2c: EEPROM
Prečítajte obsah predloženej pamäti EEPROM a zobrazte na PC.
Literatúra:
- M24C02 Datasheet
- Mitchell Kahn: Programming the i2c interface. Dr. Dobb's Journal, June 1992.
- Example using the two-wire interface (TWI). AVRlibc demo projects.
#define Dev24C02 0xA2 // device address of EEPROM 24C02, see datasheet
int main(void)
{
unsigned char ret;
i2c_init(); // initialize I2C library
// write 0x75 to EEPROM address 5 (Byte Write)
i2c_start_wait(Dev24C02+I2C_WRITE); // set device address and write mode
i2c_write(0x05); // write address = 5
i2c_write(0x75); // write value 0x75 to EEPROM
i2c_stop(); // set stop conditon = release bus
// read previously written value back from EEPROM address 5
i2c_start_wait(Dev24C02+I2C_WRITE); // set device address and write mode
i2c_write(0x05); // write address = 5
i2c_rep_start(Dev24C02+I2C_READ); // set device address and read mode
ret = i2c_readNak(); // read one byte from EEPROM
i2c_stop();
for(;;);
}