Jag behöver lite extra lagringsutrymme på min Atmega8, därför tänkte jag använda ett löst 64k EEPROM som har I2C kommunikation. Detta verkar lite knepigt, men jag läste en del på nätet och det verkar som att Peter Fleurys I2c bibliotek är det som har strulat minst för folk.
Eftersom jag inte har kört varesig I2C eller rotat speciellt mycket med minneskretsar känner jag mig lite handfallen. Kod exemplet ser ut så här:
Kod: Markera allt
#include <i2cmaster.h>
#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(;;);
}
Kod: Markera allt
i2c_write(0x05); // write address = 5
i2c_write(0x75); // write value 0x75 to EEPROM
//Alexander