This commit is contained in:
2026-03-20 21:19:53 +08:00
parent 9d3b4b836f
commit 6a749331db
125 changed files with 29972 additions and 23051 deletions

View File

@@ -101,7 +101,7 @@ void WriteMultiByteToEEPROM(u16 address, u8 *wrtData, u16 dataLenth, u8 eepromAd
SI2C_Stop();
WaitWriteOver(eepromAdr);
DisableWriteEEPROM();
}
@@ -162,21 +162,40 @@ void ClearMultiByteToEEPROM(u16 address, u8 dataLenth, u8 eepromAdr)
}
/******************************************************************************/
u32 ReadParameterFromEEPROM(u16 parameterAdr, u16 parameterLen, u32 parameterDefault)
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)
{
// for meter factor
tempDev.DWord[0] = 0;
ReadMultiByteFromEEPROM(parameterAdr, tempDev.Byte, parameterLen, PARA_EEPROM);
parameterLen--;
if(tempDev.Byte[parameterLen] != CRC8(tempDev.Byte, parameterLen))
ReadMultiByteFromEEPROM(parameterAdr, tempDev.Byte, 5, PARA_EEPROM);
if(tempDev.Byte[4] != CRC8(tempDev.Byte, 4))
{
tempDev.DWord[0] = (u32)parameterDefault;
isReadParameterOK = 0;
}
else
{
tempDev.Byte[parameterLen] = 0;
isReadParameterOK = 1;
}
@@ -184,29 +203,36 @@ u32 ReadParameterFromEEPROM(u16 parameterAdr, u16 parameterLen, u32 parameterDef
}
/******************************************************************************/
u32 WriteParameterToEEPROM(u16 WRAddr, u16 WRLen)
u16 WriteShortParameterToEEPROM(u16 WRAddr)
{
u16 I;
tempL.Byte[2] = CRC8(tempL.Byte, 2);
WriteMultiByteToEEPROM(WRAddr, tempL.Byte, 3, PARA_EEPROM);
ReadMultiByteFromEEPROM(WRAddr, tempL.Byte, 3, PARA_EEPROM);
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];
tempL.Byte[2] = 0;
return tempL.Word[0];
}
/******************************************************************************/
u16 WriteShortParameterToEEPROM(u16 WRAddr, u16 WRLen)
{
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);
//u32 WriteLongParameterToEEPROM(u16 WRAddr, u16 WRLen)
//{
// u16 I;
tempL.Byte[I] = 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)
{
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];
}