5.3.8.9 I2C voorbeeld
Voorbeeld: EEPROM 24C64 lezen en schrijven zonder I2C_status opvragen
// I2C initialisatie, bit rate 100kHz
main(void)
{
word address;
byte data,EEPROM_data;
address=0x20;
data=0x42;
I2C_Init(12C_100kHz
// write data to 24C64 (8k x 8) EEPROM
I2C_Start();
I2C_Write(0xA0);
I2C_Write(address>>8);
I2C_Write
(address);
I2C_Write(data);
I2C_Stop();
AbsDelay(5);
// read data from 24C64 (8k x 8) EEPROM
I2C_Start();
I2C_Write(0xA0)
I2C_Write(address>>8);
I2C_Write (address)
I2C_Start();
I2C_Write(0xA1);
EEPROM_data=I2C_Read_NACK();
I2C_Stop();
Mag_WriteHex(EEPROM_data);
);
;
;
// DEVICE ADDRESS : A0
// HIGH WORD ADDRESS
// LOW WORD ADDRESS
// Write Data
// delay for EEPROM Write Cycle
// DEVICE ADDRESS : A0
// HIGH WORD ADDRESS
// LOW WORD ADDRESS
// RESTART
// DEVICE ADDRESS :A1
73