#include "../main/SystemInclude.h" //============================================================================== u32 isReadParameterOK; /******************************************************************************/ void EEPROMInit(void) { EEPROM_WP_OUTPUT(); DisableWriteEEPROM(); } /******************************************************************************/ void WaitWriteOver(u8 eepromAdr) { u32 I; u32 staus; for(I=0; I<8; I++) { delay_ms(1); SI2C_Start(); staus = SI2C_Write(0xa0 | eepromAdr); SI2C_Stop(); if(staus == 0) return; } } /******************************************************************************/ void WriteByteToEEPROM(u16 address, u8 wrtData, u8 eepromAdr) { EnableWriteEEPROM(); SI2C_Start(); SI2C_Write(0xa0 | eepromAdr); SI2C_Write(address>>8); SI2C_Write(address); SI2C_Write(wrtData); SI2C_Stop(); WaitWriteOver(eepromAdr); DisableWriteEEPROM(); } /******************************************************************************/ u8 ReadByteFromEEPROM(u16 address, u8 eepromAdr) { u8 data; //SI2C_Mem_Read(0xa0 | eepromAdr, address, SI2C_MEMADD_SIZE_16BIT, &data, 1); SI2C_Start(); SI2C_Write(0xa0 | eepromAdr); SI2C_Write(address>>8); SI2C_Write(address); SI2C_Start(); SI2C_Write(0xa1 | eepromAdr); data = SI2C_Read(); SI2C_Stop(); return data; } /******************************************************************************/ void ResetWriteAddr(u16 address, u8 eepromAdr) { SI2C_Stop(); WaitWriteOver(eepromAdr); SI2C_Start(); SI2C_Write(0xa0 | eepromAdr); SI2C_Write(address>>8); SI2C_Write((u8)address); } /******************************************************************************/ void WriteMultiByteToEEPROM(u16 address, u8 *wrtData, u16 dataLenth, u8 eepromAdr) { u16 temp, I; EnableWriteEEPROM(); SI2C_Start(); SI2C_Write(0xa0 | eepromAdr); SI2C_Write(address>>8); SI2C_Write((u8)address); for(I=0; I>8); SI2C_Write((u8)address); SI2C_Start(); SI2C_Write(0xa1 | eepromAdr); *wrtData = SI2C_Read(); for(I=1; I>8); // SI2C_Write((u8)address); // for(I=0; I