#define NUM_OF_BYTES 5 unsigned char DATA[4] = {1,2,3,4,5}; unsigned char RX_DATA[4]; void I2C_INIT(void) { I2caRegs.I2CMDR.bit.IRS = 0; I2caRegs.I2CPSC.bit.IPSC = 5; I2caRegs.I2CCLKL.all = 45; I2caRegs.I2CCLKH.all = 45; /* (5+1)((10+5)+(5+5))/60MHz = 2.5uSEC = 400 KHz I2caRegs.I2CMDR.bit.IRS = 1; DELAY_US(100); } void EEPROM_WRITE() { I2caRegs.I2CMDR.bit.MST = 1; I2caRegs.I2CMDR.bit.FREE = 1; I2caRegs.I2CMDR.bit.TRX = 1; I2caRegs.I2CMDR.bit.STT = 1; I2caRegs.I2CMDR.bit.STP = 1; I2caRegs.I2CSAR.bit.SAR = 0x50; while(I2caRegs.I2CSTR.bit.NACK == 1); I2caRegs.I2CCNT = 3;//NUM_OF_BYTES+2; I2caRegs.I2CDXR = 0x00; while(I2caRegs.I2CSTR.bit.NACK == 1); I2caRegs.I2CDXR = 0x00; while(I2caRegs.I2CSTR.bit.NACK == 1); I2caRegs.I2CDXR = 0x11; /* for(i=0;i