#include "../main/SystemInclude.h" //############################################################################## #if(1) //############################################################################## float RhExtGain; u32 compareBaseCounter; u16 compareBaseValue; u16 RhExtGainRes; u16 DIVHHigh, DIVHRoom, DIVHLow; u16 VDUGXHigh, VDUGXRoom, VDUGXLow; u16 DIVHHigh, DIVHRoom, DIVHLow; u16 VDUGXHigh, VDUGXRoom, VDUGXLow; u16 offsetAir, offsetAirGainx, offsetGasGainx; u16 NRHHigh, NRHRoom, NRHLow,VHHHigh, VHHRoom, VHHLow; u16 P0RhLow, P0RhHigh; /******************************************************************************/ void RHCircuitParameterInit(void) { // A type external gain res RhExtGainRes = (u16)ReadParameterFromEEPROM(RH_GAINRES, RH_GAINRES_WIDTH, RH_GAINRES_DEFAULT); RhExtGain = 1.0/(float)RhExtGainRes; DIVHHigh = (u16)ReadParameterFromEEPROM(DIVHX_HIGH, DIVHX_HIGH_WIDTH, DIVHX_HIGH_DEFAULT); DIVHRoom = (u16)ReadParameterFromEEPROM(DIVHX_ROOM, DIVHX_ROOM_WIDTH, DIVHX_ROOM_DEFAULT); DIVHLow = (u16)ReadParameterFromEEPROM(DIVHX_LOW, DIVHX_LOW_WIDTH, DIVHX_LOW_DEFAULT); VDUGXHigh = (u16)ReadParameterFromEEPROM(VDUGX_HIGH, VDUGX_HIGH_WIDTH, VDUGX_HIGH_DEFAULT); VDUGXRoom = (u16)ReadParameterFromEEPROM(VDUGX_ROOM, VDUGX_ROOM_WIDTH, VDUGX_ROOM_DEFAULT); VDUGXLow = (u16)ReadParameterFromEEPROM(VDUGX_LOW, VDUGX_LOW_WIDTH, VDUGX_LOW_DEFAULT); offsetAirGainx = (u16)ReadParameterFromEEPROM(OFFSET_AIR_VDUGX, OFFSET_AIR_VDUGX_WIDTH, VDUGX_ROOM_DEFAULT); offsetGasGainx = (u16)ReadParameterFromEEPROM(OFFSET_GAS_VDUGX, OFFSET_GAS_VDUGX_WIDTH, VDUGX_ROOM_DEFAULT); VHHHigh = (u16)ReadParameterFromEEPROM(VHH_HIGH, VHH_HIGH_WIDTH, RH_PARA_DEFAULT); VHHRoom = (u16)ReadParameterFromEEPROM(VHH_ROOM, VHH_ROOM_WIDTH, RH_PARA_DEFAULT); VHHLow = (u16)ReadParameterFromEEPROM(VHH_LOW, VHH_LOW_WIDTH, RH_PARA_DEFAULT); NRHHigh = (u16)ReadParameterFromEEPROM(NRH_HIGH, NRH_HIGH_WIDTH, RH_PARA_DEFAULT); NRHRoom = (u16)ReadParameterFromEEPROM(NRH_ROOM, NRH_ROOM_WIDTH, RH_PARA_DEFAULT); NRHLow = (u16)ReadParameterFromEEPROM(NRH_LOW, NRH_LOW_WIDTH, RH_PARA_DEFAULT); VHHParameterAir = (u16)ReadParameterFromEEPROM(VHH_AIR_PARA, VHH_AIR_PARA_WIDTH, RH_PARA_DEFAULT); VHHParameterScale = (u16)ReadParameterFromEEPROM(VHH_PARA_SCALE, VHH_PARA_SCALE_WIDTH, 1000); P0RhLow = (u16)ReadParameterFromEEPROM(P0_0_RH, P0_0_RH_WIDTH, RH_PARA_DEFAULT); P0RhHigh = (u16)ReadParameterFromEEPROM(P0_50_RH, P0_50_RH_WIDTH, RH_PARA_DEFAULT); RHLowTa = (u16)ReadParameterFromEEPROM(RH_0, RH_0_WIDTH, RH_0_DEFAULT); RHHighTa = (u16)ReadParameterFromEEPROM(RH_50, RH_50_WIDTH, RH_50_DEFAULT); // for ADC Gain #ifndef ENABLE_ADJUST_ADC_GAIN #pragma message("[undefined] ENABLE_ADJUST_ADC_GAIN") #elif(ENABLE_ADJUST_ADC_GAIN) adcGain = (u16)ReadParameterFromEEPROM(SD24_GAIN, SD24_GAIN_WIDTH, ADC_GAIN_DEFAULT); // V2004 #endif } /******************************************************************************/ void CalibrateOffset(void) //atype? { // tempL.Word[0] = voltageDetected[NIDX]; // offsetAir = WriteShortParameterToEEPROM(OFFSET_AIR, OFFSET_AIR_WIDTH); // //tempL.Word[0] += 30; // offsetGas = WriteShortParameterToEEPROM(OFFSET_GAS, OFFSET_GAS_WIDTH); // tempL.Word[0] = voltageDetected[VDUGX]; // offsetAirGainx = WriteShortParameterToEEPROM(OFFSET_AIR_VDUGX, OFFSET_AIR_VDUGX_WIDTH); // offsetGasGainx = WriteShortParameterToEEPROM(OFFSET_GAS_VDUGX, OFFSET_GAS_VDUGX_WIDTH); } void CalibrateGasOffset(void) { // tempL.Word[0] = voltageDetected[NIDX]; // offsetAir = WriteShortParameterToEEPROM(OFFSET_AIR, OFFSET_AIR_WIDTH); // //tempL.Word[0] += 30; // offsetGas = WriteShortParameterToEEPROM(OFFSET_GAS, OFFSET_GAS_WIDTH); // tempL.Word[0] = voltageDetected[VDUGX]; // offsetGasGainx = WriteShortParameterToEEPROM(OFFSET_GAS_VDUGX, OFFSET_GAS_VDUGX_WIDTH); } /******************************************************************************/ void PreCalibrationParameterWriting(void) { // //=========================================================================== // tempL.Word[0] = voltageDetected[NIDX]; // offsetAir = WriteShortParameterToEEPROM(OFFSET_AIR, OFFSET_AIR_WIDTH); // //tempL.Word[0] += 30; // offsetGas = WriteShortParameterToEEPROM(OFFSET_GAS, OFFSET_GAS_WIDTH); // // //--------------------------------------------------------------------------- // tempL.Word[0] = voltageDetected[RRRES]; // NRHRoom = WriteShortParameterToEEPROM(NRH_ROOM, NRH_ROOM_WIDTH); // // tempL.Word[0] = voltageDetected[IVHDX]; // VHHRoom = WriteShortParameterToEEPROM(VHH_ROOM, VHH_ROOM_WIDTH); // // tempL.Word[0] = voltageDetected[DIVHX]; // DIVHRoom = WriteShortParameterToEEPROM(DIVHX_ROOM, DIVHX_ROOM_WIDTH); // tempL.Word[0] = voltageDetected[VDUGX]; // offsetAirGainx = WriteShortParameterToEEPROM(OFFSET_AIR_VDUGX, OFFSET_AIR_VDUGX_WIDTH); // offsetGasGainx = WriteShortParameterToEEPROM(OFFSET_GAS_VDUGX, OFFSET_GAS_VDUGX_WIDTH); // VDUGXRoom = WriteShortParameterToEEPROM(VDUGX_ROOM, VDUGX_ROOM_WIDTH); // //--------------------------------------------------------------------------- //#ifndef TEMP_CORR_USE_TA //#pragma message("[undefined] TEMP_CORR_USE_TA") //#elif(TEMP_CORR_USE_TA) // tempL.Word[0] = voltageDetected[TPCB]; //#else // #ifndef ENABLE_GAS_RECOGNITION // #pragma message("[undefined] ENABLE_GAS_RECOGNITION") // #elif(ENABLE_GAS_RECOGNITION) // tempL.Word[0] = voltageDetected[TGAS]; // #else // tempL.Word[0] = voltageDetected[TPCB]; // #endif //#endif // //--------------------------------------------------------------------------- // calibTemperature = WriteShortParameterToEEPROM(CALIB_TEMPERATURE, CALIB_TEMPERATURE_WIDTH); // //--------------------------------------------------------------------------- // //=========================================================================== //#ifndef ENABLE_A_TYPE_FLOWRATE //#pragma message("[undefined] ENABLE_A_TYPE_FLOWRATE") //#elif(ENABLE_A_TYPE_FLOWRATE) // tempL.Word[0] = voltageDetected[SDT]; // offsetGasA = WriteShortParameterToEEPROM(OFFSET_A, OFFSET_A_WIDTH); //#endif // // calibType = ('P'<<8)+'D'; //5044 } /******************************************************************************/ void LowTemperatureParameterWriting(void) { if(voltageDetected[TPCB] >= ENABLE_WRITE_TA_LOW) { calibType = ('E'<<8)+'R'; return; } tempL.Word[0] = voltageDetected[RRRES]; NRHLow = WriteShortParameterToEEPROM(NRH_LOW, NRH_LOW_WIDTH); tempL.Word[0] = voltageDetected[IVHDX]; VHHLow = WriteShortParameterToEEPROM(VHH_LOW, VHH_LOW_WIDTH); tempL.Word[0] = voltageDetected[DIVHX]; DIVHLow = WriteShortParameterToEEPROM(DIVHX_LOW, DIVHX_LOW_WIDTH); tempL.Word[0] = voltageDetected[VDUGX]; VDUGXLow = WriteShortParameterToEEPROM(VDUGX_LOW, VDUGX_LOW_WIDTH); // for AType FlowRate Compute //tempL.Word[0] = ReadDataFromMovingAverage(PDRH); //--------------------------------------------------------------------------- tempL.Word[0] = voltageDetected[PORH]; P0RhLow = WriteShortParameterToEEPROM(P0_0_RH, P0_0_RH_WIDTH); tempL.Word[0] = voltageDetected[RHRES]; RHLowTa = WriteShortParameterToEEPROM(RH_0, RH_0_WIDTH); tempL.Word[0] = voltageDetected[NIDX]; OffsetLow = WriteShortParameterToEEPROM(OFFSET_00, OFFSET_00_WIDTH); StaticLowTemperatureWrite(); //calibType = ('L'<<8)+'D'; calibType &= 0xff00; calibType |= 'L'; } /******************************************************************************/ void HighTemperatureParameterWriting(void) { if(voltageDetected[TPCB] <= ENABLE_WRITE_TA_HIGH) { calibType = ('E'<<8)+'R'; return; } tempL.Word[0] = voltageDetected[RRRES]; NRHHigh = WriteShortParameterToEEPROM(NRH_HIGH, NRH_HIGH_WIDTH); tempL.Word[0] = voltageDetected[IVHDX]; VHHHigh = WriteShortParameterToEEPROM(VHH_HIGH, VHH_HIGH_WIDTH); tempL.Word[0] = voltageDetected[DIVHX]; DIVHHigh = WriteShortParameterToEEPROM(DIVHX_HIGH, DIVHX_HIGH_WIDTH); tempL.Word[0] = voltageDetected[VDUGX]; VDUGXHigh = WriteShortParameterToEEPROM(VDUGX_HIGH, VDUGX_HIGH_WIDTH); // for AType FlowRate Compute tempL.Word[0] = voltageDetected[PORH]; P0RhHigh = WriteShortParameterToEEPROM(P0_50_RH, P0_50_RH_WIDTH); tempL.Word[0] = voltageDetected[RHRES]; RHHighTa = WriteShortParameterToEEPROM(RH_50, RH_50_WIDTH); tempL.Word[0] = voltageDetected[NIDX]; OffsetHigh = WriteShortParameterToEEPROM(OFFSET_50, OFFSET_50_WIDTH); StaticLowTemperatureWrite(); calibType &= 0x00ff; calibType |= ('H'<<8); } /******************************************************************************/ void SaveVHHAndNRHInTempretureMode(void) { if(!currentMode.Bit.ZeroCalib) return; if(samplingInterval > EXT_POWER_PERIOD_TIME) return; if((voltageDetected[TPCB] > ENABLE_WRITE_TA_LOW) && (voltageDetected[TPCB] < ENABLE_WRITE_TA_HIGH)) { compareBaseCounter = 0; compareBaseValue = voltageDetected[TPCB]; return; } if((voltageDetected[TPCB] > compareBaseValue + ENABLE_WRITE_TA_SCALE) || (voltageDetected[TPCB] < compareBaseValue - ENABLE_WRITE_TA_SCALE)) { compareBaseCounter = 0; compareBaseValue = voltageDetected[TPCB]; } else { //compareBaseCounter += (unsigned long int)timePeriod; if(compareBaseCounter < (unsigned long int)EXIT_5400S) return; // 1hours // 1hours if(voltageDetected[TPCB] >= ENABLE_WRITE_TA_HIGH) HighTemperatureParameterWriting(); else if(voltageDetected[TPCB] <= ENABLE_WRITE_TA_LOW) LowTemperatureParameterWriting(); compareBaseCounter=0; } } //############################################################################## #endif //##############################################################################