2026-03-20 21:16:58 +08:00
|
|
|
|
#include "../main/SystemInclude.h"
|
|
|
|
|
|
|
|
|
|
|
|
// for flowrate compute
|
2026-03-20 21:19:04 +08:00
|
|
|
|
u16 staticHighTemperature, staticLowTemperature, RHHighTa, RHLowTa;
|
2026-03-20 21:16:58 +08:00
|
|
|
|
s32 RHCalibDeltaVaule, TACalibDeltaVaule, RHTemperature;
|
|
|
|
|
|
static u16 zeroCalibType;
|
2026-03-20 21:19:04 +08:00
|
|
|
|
//******************************************************************************
|
|
|
|
|
|
void StaticTemperatureInit(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
zeroCalibType = 0;
|
|
|
|
|
|
staticLowTemperature = (u16)ReadParameterFromMemory(STATIC_LOW_TA, STATIC_LOW_TA_WIDTH, STATIC_LOW_TA_DEFAULT);
|
|
|
|
|
|
if((isReadParameterOK) && (staticLowTemperature < ENABLE_WRITE_TA_LOW)) zeroCalibType |= 'L';
|
|
|
|
|
|
|
|
|
|
|
|
staticHighTemperature = (u16)ReadParameterFromMemory(STATIC_HIGH_TA, STATIC_HIGH_TA_WIDTH, STATIC_HIGH_TA_DEFAULT);
|
|
|
|
|
|
if((isReadParameterOK) && (staticHighTemperature > ENABLE_WRITE_TA_HIGH)) zeroCalibType |= 'H'<<8;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//******************************************************************************
|
|
|
|
|
|
void StaticLowTemperatureWrite(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
tempL.Word[0] = voltageDetected[TPCB];
|
|
|
|
|
|
staticLowTemperature = WriteShortParameterToEEPROM(STATIC_LOW_TA, STATIC_LOW_TA_WIDTH);
|
|
|
|
|
|
|
|
|
|
|
|
zeroCalibType &= 0xff00;
|
|
|
|
|
|
zeroCalibType |= 'L';
|
|
|
|
|
|
currentMode.Bit.LowCalibEnd = 1;
|
|
|
|
|
|
if(zeroCalibType == (('H'<<8)+'L'))
|
|
|
|
|
|
{
|
|
|
|
|
|
tempL.Word[0] = 0;
|
|
|
|
|
|
tempL.Word[0] = WriteShortParameterToEEPROM(SYS_COMMAND, SYS_COMMAND_WIDTH);
|
|
|
|
|
|
EnterUserMode();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2026-03-20 21:16:58 +08:00
|
|
|
|
|
2026-03-20 21:19:04 +08:00
|
|
|
|
//******************************************************************************
|
|
|
|
|
|
void StaticHighTemperatureWrite(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
tempL.Word[0] = voltageDetected[TPCB];
|
|
|
|
|
|
staticHighTemperature = WriteShortParameterToEEPROM(STATIC_HIGH_TA, STATIC_HIGH_TA_WIDTH);
|
|
|
|
|
|
zeroCalibType &= 0x00ff;
|
|
|
|
|
|
zeroCalibType |= 'H'<<8;
|
|
|
|
|
|
|
|
|
|
|
|
currentMode.Bit.HighCalibEnd = 1;
|
|
|
|
|
|
if(zeroCalibType == (('H'<<8)+'L'))
|
|
|
|
|
|
{
|
|
|
|
|
|
tempL.Word[0] = 0;
|
|
|
|
|
|
tempL.Word[0] = WriteShortParameterToEEPROM(SYS_COMMAND, SYS_COMMAND_WIDTH);
|
|
|
|
|
|
EnterUserMode();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2026-03-20 21:16:58 +08:00
|
|
|
|
//******************************************************************************
|
|
|
|
|
|
u16 ComputeRHTemperature(u16 RHRes)
|
|
|
|
|
|
{
|
|
|
|
|
|
s32 computeBuf;
|
|
|
|
|
|
|
|
|
|
|
|
RHCalibDeltaVaule = (u32)RHHighTa-(u32)RHLowTa;
|
|
|
|
|
|
TACalibDeltaVaule = (u32)staticHighTemperature-(u32)staticLowTemperature;
|
|
|
|
|
|
|
|
|
|
|
|
computeBuf = (u32)RHRes-(u32)RHLowTa;
|
|
|
|
|
|
computeBuf *= TACalibDeltaVaule;
|
|
|
|
|
|
computeBuf /= RHCalibDeltaVaule;
|
|
|
|
|
|
computeBuf += (u32)staticLowTemperature;
|
|
|
|
|
|
|
|
|
|
|
|
return (u16)computeBuf;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//******************************************************************************
|
|
|
|
|
|
void StaticTGasCompute(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
voltageDetected[TRH] = ComputeRHTemperature(voltageDetected[RRRES]);
|
|
|
|
|
|
|
|
|
|
|
|
//==============================================================================
|
|
|
|
|
|
#ifndef ENABLE_RR_CALIBRATION
|
|
|
|
|
|
#pragma message("[undefined] ENABLE_RR_CALIBRATION")
|
|
|
|
|
|
#elif(ENABLE_RR_CALIBRATION)
|
|
|
|
|
|
// ͨ<><CDA8><EFBFBD>ߵ<EFBFBD><DFB5>±궨<C2B1><EAB6A8><EFBFBD><EFBFBD>RR<52><52><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¶<EFBFBD>
|
2026-03-20 21:19:04 +08:00
|
|
|
|
RHCalibDeltaVaule = (u32)NRHHigh-(u32)NRHLow;
|
2026-03-20 21:16:58 +08:00
|
|
|
|
TACalibDeltaVaule = (u32)staticHighTemperature-(u32)staticLowTemperature;
|
|
|
|
|
|
|
2026-03-20 21:19:04 +08:00
|
|
|
|
tmpSLA = (u32)voltageDetected[RRRES]-(u32)NRHLow;
|
2026-03-20 21:16:58 +08:00
|
|
|
|
tmpSLA *= TACalibDeltaVaule;
|
|
|
|
|
|
tmpSLA /= RHCalibDeltaVaule;
|
|
|
|
|
|
tmpSLA += (u32)staticLowTemperature;
|
|
|
|
|
|
voltageDetected[TGAS] = (u16)tmpSLA;
|
|
|
|
|
|
#else
|
|
|
|
|
|
// ͨ<><CDA8>RRĬ<52>ϵ<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¶<EFBFBD>
|
|
|
|
|
|
voltageDetected[TGAS] = voltageDetected[TPCB];
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
//==============================================================================
|
|
|
|
|
|
#ifndef ENABLE_PRESSURE_TEMPERATURE
|
|
|
|
|
|
#pragma message("[undefined] ENABLE_PRESSURE_TEMPERATURE")
|
|
|
|
|
|
#elif(!ENABLE_PRESSURE_TEMPERATURE)
|
|
|
|
|
|
GasTemperature = (u16)voltageDetected[TGAS];
|
|
|
|
|
|
GasTemperature -= (u16)TEMPRETURE_OFFSET;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
|