NULL
This commit is contained in:
80
user/Device/CAT24C512.c
Executable file → Normal file
80
user/Device/CAT24C512.c
Executable file → Normal file
@@ -101,7 +101,7 @@ void WriteMultiByteToEEPROM(u16 address, u8 *wrtData, u16 dataLenth, u8 eepromAd
|
||||
|
||||
SI2C_Stop();
|
||||
WaitWriteOver(eepromAdr);
|
||||
|
||||
|
||||
DisableWriteEEPROM();
|
||||
|
||||
}
|
||||
@@ -162,40 +162,21 @@ void ClearMultiByteToEEPROM(u16 address, u8 dataLenth, u8 eepromAdr)
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
u16 ReadShortParameterFromEEPROM(u16 parameterAdr, u16 parameterDefault)
|
||||
{
|
||||
// for meter factor
|
||||
tempL.Word[0] = 0;
|
||||
ReadMultiByteFromEEPROM(parameterAdr, tempL.Byte, 3, PARA_EEPROM);
|
||||
|
||||
if(tempL.Byte[2] != CRC8(tempL.Byte, 2))
|
||||
{
|
||||
tempL.Word[0] = (u32)parameterDefault;
|
||||
isReadParameterOK = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
tempL.Byte[2] = 0;
|
||||
isReadParameterOK = 1;
|
||||
}
|
||||
|
||||
return tempL.Word[0];
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
u32 ReadLongParameterFromEEPROM(u16 parameterAdr, u32 parameterDefault)
|
||||
u32 ReadParameterFromEEPROM(u16 parameterAdr, u16 parameterLen, u32 parameterDefault)
|
||||
{
|
||||
// for meter factor
|
||||
tempDev.DWord[0] = 0;
|
||||
ReadMultiByteFromEEPROM(parameterAdr, tempDev.Byte, 5, PARA_EEPROM);
|
||||
|
||||
if(tempDev.Byte[4] != CRC8(tempDev.Byte, 4))
|
||||
ReadMultiByteFromEEPROM(parameterAdr, tempDev.Byte, parameterLen, PARA_EEPROM);
|
||||
parameterLen--;
|
||||
|
||||
if(tempDev.Byte[parameterLen] != CRC8(tempDev.Byte, parameterLen))
|
||||
{
|
||||
tempDev.DWord[0] = (u32)parameterDefault;
|
||||
isReadParameterOK = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
tempDev.Byte[parameterLen] = 0;
|
||||
isReadParameterOK = 1;
|
||||
}
|
||||
|
||||
@@ -203,36 +184,29 @@ u32 ReadLongParameterFromEEPROM(u16 parameterAdr, u32 parameterDefault)
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
u16 WriteShortParameterToEEPROM(u16 WRAddr)
|
||||
u32 WriteParameterToEEPROM(u16 WRAddr, u16 WRLen)
|
||||
{
|
||||
tempL.Byte[2] = CRC8(tempL.Byte, 2);
|
||||
WriteMultiByteToEEPROM(WRAddr, tempL.Byte, 3, PARA_EEPROM);
|
||||
ReadMultiByteFromEEPROM(WRAddr, tempL.Byte, 3, PARA_EEPROM);
|
||||
u16 I;
|
||||
|
||||
tempL.Byte[2] = 0;
|
||||
return tempL.Word[0];
|
||||
I = WRLen - 1;
|
||||
tempDev.Byte[I] = CRC8(tempDev.Byte, I);
|
||||
WriteMultiByteToEEPROM(WRAddr, tempDev.Byte, WRLen, PARA_EEPROM);
|
||||
tempDev.DWord[0] = 0;
|
||||
ReadMultiByteFromEEPROM(WRAddr, tempDev.Byte, WRLen, PARA_EEPROM);
|
||||
tempDev.Byte[I] = 0;
|
||||
return tempDev.DWord[0];
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
//u32 WriteLongParameterToEEPROM(u16 WRAddr, u16 WRLen)
|
||||
//{
|
||||
// u16 I;
|
||||
|
||||
// I = WRLen - 1;
|
||||
// tempDev.Byte[I] = CRC8(tempDev.Byte, I);
|
||||
// WriteMultiByteToEEPROM(WRAddr, tempDev.Byte, WRLen, PARA_EEPROM);
|
||||
// tempDev.DWord[0] = 0;
|
||||
// ReadMultiByteFromEEPROM(WRAddr, tempDev.Byte, WRLen, PARA_EEPROM);
|
||||
// tempDev.Byte[I] = 0;
|
||||
// return tempDev.DWord[0];
|
||||
//}
|
||||
|
||||
u32 WriteLongParameterToEEPROM(u16 WRAddr)
|
||||
u16 WriteShortParameterToEEPROM(u16 WRAddr, u16 WRLen)
|
||||
{
|
||||
tempDev.Byte[4] = CRC8(tempDev.Byte, 4);
|
||||
WriteMultiByteToEEPROM(WRAddr, tempDev.Byte, 5, PARA_EEPROM);
|
||||
tempDev.DWord[0] = 0;
|
||||
ReadMultiByteFromEEPROM(WRAddr, tempDev.Byte, 5, PARA_EEPROM);
|
||||
tempDev.Byte[4] = 0;
|
||||
return tempDev.DWord[0];
|
||||
}
|
||||
unsigned int I;
|
||||
|
||||
I = WRLen - 1;
|
||||
tempL.Byte[I] = CRC8(tempL.Byte, I);
|
||||
WriteMultiByteToEEPROM(WRAddr, tempL.Byte, WRLen, PARA_EEPROM);
|
||||
ReadMultiByteFromEEPROM(WRAddr, tempL.Byte, WRLen, PARA_EEPROM);
|
||||
|
||||
tempL.Byte[I] = 0;
|
||||
return tempL.Word[0];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user