559 lines
19 KiB
C
Executable File
559 lines
19 KiB
C
Executable File
#include "../main/SystemInclude.h"
|
|
|
|
u16 systmeState;
|
|
//u16 UPGRADECammand ;
|
|
//u16 CodeCRC ;
|
|
u16 jumpError;
|
|
//******************************************************************************
|
|
// for internel modbus
|
|
//u32 securityID; //
|
|
|
|
//*****************************************************************************
|
|
//for modbus >16bit register define
|
|
u32 flowRate,flowAccumulationInteger;
|
|
s32 GASPressure;
|
|
u64 flowAccumulationHex;
|
|
u32 minFlowRate,maxFlowRate,minAnalogOutput,maxAnalogOutput;
|
|
u32 alarmAcc,alarmUpperFlowRate,alarmLowerFlowRate;
|
|
u32 reverseFlowRateMin, reverseFlowRateMax;
|
|
|
|
//*******************************************************************************
|
|
__SystemProcess_Union_TypeDef systemProcessing; //ÓÃÓÚϵͳ¹¤×÷״̬
|
|
__SystemState_Union_TypeDef currentMode;
|
|
__Hardware_Status_Bit_TypeDef HWState;
|
|
__Alarm_State_TypeDef systemAlarm;
|
|
|
|
//******************************************************************************
|
|
u16 curveMode;
|
|
u16 SysLcd, SysLoopChip;// currentSysState;
|
|
u16 testTypeCounter;//, MEMSErrorCounter;
|
|
u16 systemVoltage, batteryGrid;
|
|
u16 calibType;
|
|
// for code CRC
|
|
u16 APPCodeCRC;
|
|
u32 securityID;
|
|
u16 IDvalidTime, comCounter, comResetCounter, AutoOffsetCounter, timePeriod, autoTxdCounter, SysVolErrorCount;
|
|
u32 ModeExitTime;
|
|
__Display_Status_Bit_TypeDef displayMode;
|
|
// for save data
|
|
u16 timeCompute;
|
|
//for system
|
|
u16 lastState, syatemHardState;
|
|
//------------------------------------------------------------------------------
|
|
// for display
|
|
u8 Dis1[15], timer[8];
|
|
u16 displayUpdate, displayCNT;
|
|
//u8 flowRateUnit, AccUnit;
|
|
//------------------------------------------------------------------------------
|
|
// for flowRate
|
|
u32 currentFlowRate, factoryFlowRate;
|
|
//------------------------------------------------------------------------------
|
|
//u16 calibTemperature;
|
|
//------------------------------------------------------------------------------
|
|
// for acc pulse output
|
|
u16 samplingInterval, samplingIntervalTarget, responseTimeIndex;
|
|
u16 updatePulseTime;
|
|
//------------------------------------------------------------------------------
|
|
u16 tmpIA;
|
|
s32 tmpSLA, tmpSLB;
|
|
u32 tmpLA, tmpLB;
|
|
|
|
TypeWord tempWord;
|
|
TypeLong tempL;
|
|
TypeLongLong tempDev;
|
|
//------------------------------------------------------------------------------
|
|
const u8 ProductModel[12] = PRODUCT_MOD;
|
|
const u8 SoftVersion[12] = VERSION;
|
|
const u8 SoftBuildDate[10] = BUILD_DATE;
|
|
const u8 PulseOutGain[] ={32,16,8,4,2,1}; //
|
|
const u8 FilterMax[] ={1, 2, 4, 8, 16, 32}; // filter depth
|
|
const u16 Timing[] ={BASE_125MS, BASE_250MS, BASE_500MS, BASE_1000MS, BASE_2000MS, BASE_4000MS};
|
|
const u16 TimeVaule[] ={2048,4096, 8192, 16384, 32768, 65535}; //2048, 0.125s£¬0.25s, 0.5s, 1s, 2s, 4s
|
|
const u16 UpdateTimeVaule[] ={3000, 3850, 7372, 8192, 16384, 16384}; // 0.235s, 0.45s, 0.5s, 1s, 2s
|
|
const u16 FRUnitForHour[] ={28800, 14400, 7200, 3600, 1800, 900};
|
|
const u16 FRUnitForMinute[] ={480, 240, 120, 60, 30, 15};
|
|
//------------------------------------------------------------------------------
|
|
const u8 BuildDate[] = __DATE__; // "Oct 30 2010"
|
|
/******************************************************************************/
|
|
|
|
//******************************************************************************
|
|
void EnterUserMode(void)
|
|
{
|
|
currentMode.Bit.CalibMode = 0;
|
|
currentMode.Bit.IntCalibMode = 0;
|
|
currentMode.Bit.FactoryTestMode = 0;
|
|
currentMode.Bit.DebugMode = 0;
|
|
currentMode.Bit.DigitOutput = 1;
|
|
currentMode.Bit.ComModeOperate = 0;
|
|
ModeExitTime = 0;
|
|
}
|
|
|
|
//******************************************************************************
|
|
void EnterCalibMode(void)
|
|
{
|
|
currentMode.Bit.CalibMode = 1;
|
|
currentMode.Bit.IntCalibMode = 1;
|
|
currentMode.Bit.FactoryTestMode = 0;
|
|
currentMode.Bit.DebugMode = 0;
|
|
currentMode.Bit.DigitOutput = 1;
|
|
currentMode.Bit.ComModeOperate = 1;
|
|
ModeExitTime = 0;
|
|
}
|
|
|
|
//******************************************************************************
|
|
void EnterZeroCalibMode(void)
|
|
{
|
|
currentMode.Bit.CalibMode = 1;
|
|
currentMode.Bit.IntCalibMode = 1;
|
|
currentMode.Bit.ZeroCalib = 1;
|
|
currentMode.Bit.FactoryTestMode = 0;
|
|
currentMode.Bit.DebugMode = 0;
|
|
currentMode.Bit.DigitOutput = 1;
|
|
currentMode.Bit.ComModeOperate = 1;
|
|
ModeExitTime = 0;
|
|
}
|
|
|
|
//******************************************************************************
|
|
void EnterBatteryMode(void)
|
|
{
|
|
currentMode.Bit.CalibMode = 0;
|
|
currentMode.Bit.IntCalibMode = 0;
|
|
currentMode.Bit.FactoryTestMode = 0;
|
|
currentMode.Bit.DebugMode = 0;
|
|
currentMode.Bit.DigitOutput = 1;
|
|
currentMode.Bit.ComModeOperate = 1;
|
|
currentMode.Bit.ExtPowerInput = 0;
|
|
ModeExitTime = 0;
|
|
}
|
|
|
|
//******************************************************************************
|
|
void EnterDebugMode(void)
|
|
{
|
|
currentMode.Bit.CalibMode = 0;
|
|
currentMode.Bit.IntCalibMode = 0;
|
|
currentMode.Bit.FactoryTestMode = 0;
|
|
currentMode.Bit.DebugMode = 1;
|
|
currentMode.Bit.DigitOutput = 1;
|
|
currentMode.Bit.ComModeOperate = 1;
|
|
currentMode.Bit.ExtPowerInput = 1;
|
|
ModeExitTime = 0;
|
|
}
|
|
|
|
//******************************************************************************
|
|
void EnterGcfTestMode(void)
|
|
{
|
|
currentMode.Bit.CalibMode = 0;
|
|
currentMode.Bit.FactoryTestMode = 0;
|
|
currentMode.Bit.DebugMode = 0;
|
|
currentMode.Bit.ExtPowerInput = 1;
|
|
currentMode.Bit.DigitOutput = 1;
|
|
currentMode.Bit.ComModeOperate = 1;
|
|
ModeExitTime = 0;
|
|
}
|
|
|
|
/******************************************************************************/
|
|
void ModeExitCount(void)
|
|
{
|
|
//----------------------------------------------------------------------------
|
|
// ONE SENCOND
|
|
// 16384*30 / 128
|
|
IDvalidTime += timePeriod;
|
|
if(IDvalidTime >= ID_VALID_TIME) {
|
|
IDvalidTime = 0;
|
|
securityID = 0;
|
|
HWState.EnableCheckCorr = 1;
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
// comm return counter
|
|
if(currentMode.Bit.CalibMode) {
|
|
comCounter += timePeriod;
|
|
if(comCounter >= comResetCounter) {
|
|
comCounter = 0;
|
|
comResetCounter = TIMING_500mS;
|
|
currentMode.Bit.DigitOutput = 1;
|
|
systemProcessing.Bit.WriteHandle = 0;
|
|
}
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
// mode return counter
|
|
ModeExitTime += (u32)timePeriod;
|
|
if(ModeExitTime >= (u32)EXIT_7200S) {
|
|
ModeExitTime = 0;
|
|
EnterUserMode();
|
|
// currentMode.Bit.ComModeOperate = 0;
|
|
}
|
|
}
|
|
|
|
/******************************************************************************/
|
|
void ManagePrimaryTimeInterval(void)
|
|
{
|
|
u32 currentPerPulse;
|
|
|
|
//----------------------------------------------------------------------------
|
|
//ÖØÖÃÖ÷¶¨Ê±Æ÷
|
|
samplingIntervalForTotal = samplingInterval;
|
|
timePeriod = TimeVaule[samplingInterval];
|
|
timePeriod >>= 7;
|
|
|
|
samplingInterval = samplingIntervalTarget;
|
|
ResetPrimaryTimer(TimeVaule[samplingInterval]);
|
|
|
|
samplingIntervalTarget = factoryInterval;//
|
|
|
|
if(currentMode.Bit.CalibMode) samplingIntervalTarget = (u16)EXT_POWER_PERIOD_TIME;
|
|
else samplingIntervalTarget = factoryInterval;//
|
|
currentMode.Bit.TurnOffSystem = 0;
|
|
}
|
|
|
|
//Ö÷³ÌÐòÈë¿Ú------------------------------------------------------------
|
|
void EnterMainEntry(void)
|
|
{
|
|
// samplingInterval = 1;
|
|
|
|
// ×¢²áÖ÷¶¨Ê±Æ÷Öжϴ¦Àí³ÌÐòÈë¿Ú
|
|
StartPrimaryTimer(TimeVaule[samplingInterval]); //ÆôÓÃÖ÷¶¨Ê±Æ÷
|
|
lptimer_register_irq_callback(PrimaryTimer, PrimaryTimer_IRQ_Callback);
|
|
}
|
|
|
|
/******************************************************************************/
|
|
void BackupParameterToFlash(void)
|
|
{
|
|
//FY WriteShortParameterToBuffer(UPGRADECammand, UPGRADE_APP, UPGRADE_APP_WIDTH);
|
|
//FY WriteShortParameterToBuffer(localAddress, SLAVER_ADDR, SLAVER_ADDR_WIDTH);
|
|
//WriteShortParameterToBuffer(baudRate, BAUD_RATE, BAUD_RATE_WIDTH);
|
|
// Clear_WDT();
|
|
//
|
|
// disable_interrupts();
|
|
////FY WriteMultiByteToInfoSegment(PARAMETER_BASE, FlashBuf, PARA_LEN);
|
|
// enable_interrupts();
|
|
|
|
//FY ReadMultiByteFromInfoSegment(PARAMETER_BASE, FlashBuf, PARA_LEN);
|
|
}
|
|
|
|
//******************************************************************************
|
|
//ϵͳ²ÎÊý³õʼ»¯£¬¶ÁÈ¡³ö³§²ÎÊý
|
|
void SystemParameterInit(void)
|
|
{
|
|
currentMode.Bit.ComModeOperate = 0;
|
|
|
|
//------------------------------------------------------------------------------
|
|
InternalShortParameterInit();
|
|
InternalLongParameterInit();
|
|
|
|
//------------------------------------------------------------------------------
|
|
// ÏȶÁȡζȣ¬ÅжÏģʽ
|
|
ManagePrimaryTimeInterval();
|
|
|
|
//------------------------------------------------------------------------------
|
|
Clear_WDT();
|
|
|
|
//------------------------------------------------------------------------------
|
|
ReadMultiByteFromMemory(SERIES_BASE, (u8 *)&meterSN1, SERIES_DEPTH);
|
|
|
|
//------------------------------------------------------------------------------
|
|
localAddress = (u16)ReadShortParameterFromMemory(SLAVER_ADDR, SLAVER_ADDR_DEFAULT);
|
|
#ifndef ENABLE_USER_I2C
|
|
#pragma message("[undefined] ENABLE_USER_I2C")
|
|
#elif(ENABLE_USER_I2C)
|
|
I2CAddr = localAddress;
|
|
#endif
|
|
|
|
// for GDCF
|
|
// GCFCoefA = (s32)ReadParameterFromEEPROM(GCF_A, GCF_A_WIDTH, (u32)GCF_A_DEFAULT);
|
|
GDCFactor = (u16)ReadShortParameterFromMemory(GCF_B, GCF_DEFAULT);
|
|
// GCFCoefC = (s32)ReadParameterFromEEPROM(GCF_C, GCF_C_WIDTH, GCF_C_DEFAULT);
|
|
ComputeGCFFactor();
|
|
|
|
Clear_WDT();
|
|
offsetGas = (u16)ReadShortParameterFromMemory(GAS_OFFSET, 32768);
|
|
//------------------------------------------------------------------------------
|
|
// offsetGCFX = (u16)ReadParameterFromEEPROM(OFFSET_GCFX, OFFSET_GCFX_WIDTH, 32768);
|
|
//------------------------------------------------------------------------------
|
|
samplingInterval = factoryInterval;
|
|
samplingTiming = SetupResponseTime(factoryInterval, SAMPLE_PERIOD_DEFAULT);
|
|
|
|
responseTimeIndex = (u16)ReadShortParameterFromMemory(RESPONSE_TIME, RESPONSE_TIME_DEFAULT);
|
|
responseTime = SetupResponseTime(responseTimeIndex, RESPONSE_TIME_DEFAULT);
|
|
|
|
// for max current Loop flowrate
|
|
maxFlowRate = ReadLongParameterFromMemory(OUT_MAX_FLOW, MAX_FR_DEFAULT);
|
|
tempL.DWord = maxFlowRate;
|
|
maxFlowRateH = tempL.Word[1];
|
|
maxFlowRateL = tempL.Word[0];
|
|
|
|
minFlowRate = ReadLongParameterFromMemory(OUT_MIN_FLOW, MIN_FR_DEFAULT); // V2004
|
|
tempL.DWord = minFlowRate;
|
|
minFlowRateH = tempL.Word[1];
|
|
minFlowRateL = tempL.Word[0];
|
|
|
|
Clear_WDT();
|
|
//read uart DecimalPoint
|
|
uartDecimalPoint = (u16)ReadShortParameterFromMemory(COM_DECIMAL, COM_DECIMAL_POINT_DEFAULT);
|
|
//============================================================================
|
|
// for AUTO TXD DATA
|
|
timingTxdStart = (u16)ReadShortParameterFromMemory(TIMING_TXD_START, TIMING_TXD_START_DEFAULT);
|
|
timingTxdLen = (u16)ReadShortParameterFromMemory(TIMING_TXD_LEN, TIMING_TXD_LEN_DEFAULT);
|
|
timingTxdTime = (u16)ReadShortParameterFromMemory(TIMING_TXD_TIME, TIMING_TXD_TIME_DEFAULT);
|
|
|
|
// key setup password
|
|
//============================================================================
|
|
#ifndef ENABLE_KEY_FUNCTION
|
|
#pragma message("[undefined] ENABLE_KEY_FUNCTION")
|
|
#elif(ENABLE_KEY_FUNCTION)
|
|
keyPassWord = ReadParameterFromEEPROM(KEY_PASSWORD, KEY_PASSWORD_WIDTH, KEY_PASSWORD_DEFAULT);
|
|
#endif
|
|
|
|
//============================================================================
|
|
UnitConverterInit();
|
|
|
|
//============================================================================
|
|
#ifndef ENABLE_ACCPULSE
|
|
#pragma message("[undefined] ENABLE_ACCPULSE")
|
|
#elif(ENABLE_ACCPULSE)
|
|
PulseParameterInit();
|
|
#endif
|
|
|
|
//============================================================================
|
|
GasAnalysisParameterInit();
|
|
|
|
//============================================================================
|
|
SaveParameterInit();
|
|
|
|
//==============================================================================
|
|
// retrieve device coefficients
|
|
#ifndef ENABLE_DCOEF
|
|
#pragma message("[undefined] ENABLE_DCOEF")
|
|
#elif(ENABLE_DCOEF)
|
|
RetriveDevCoef();
|
|
#endif
|
|
|
|
//============================================================================
|
|
// for Tempreature correct
|
|
RetriveTACurve();
|
|
|
|
//==============================================================================
|
|
#ifndef REC_ACC_PER
|
|
#pragma message("[undefined] REC_ACC_PER")
|
|
#elif(REC_ACC_PER)
|
|
RetrieveLastAccumulation();
|
|
#endif
|
|
|
|
SetHistoryRecordTime();
|
|
|
|
// for modbus
|
|
InitUseBusParameter();
|
|
|
|
//----------------------------------------------------------------------------
|
|
// V2004
|
|
#ifndef ENABLE_ALARM_ACC
|
|
#pragma message("[undefined] ENABLE_ALARM_ACC")
|
|
#elif(ENABLE_ALARM_ACC)
|
|
alarmAcc = ReadParameterFromEEPROM(ALARM_ACC, ALARM_ACC_WIDTH, ALARM_ACC_DEFAULT);
|
|
#endif
|
|
|
|
//----------------------------------------------------------------------------
|
|
#ifndef ENABLE_LEAK_DETECT
|
|
#pragma message("[undefined] ENABLE_LEAK_DETECT")
|
|
#elif(ENABLE_LEAK_DETECT)
|
|
minLeakFlowRate = (u16)ReadParameterFromEEPROM(MIN_LEAK_FLOW, MIN_LEAK_FLOW_WIDTH, MIN_LEAK_FLOW_DEFAULT);
|
|
maxLeakFlowRate = (u16)ReadParameterFromEEPROM(MAX_LEAK_FLOW, MAX_LEAK_FLOW_WIDTH, MAX_LEAK_FLOW_DEFAULT);
|
|
leakDetectTime = (u16)ReadParameterFromEEPROM(LEAK_TIME, LEAK_TIME_WIDTH, LEAK_TIME_DEFAULT);
|
|
#endif
|
|
|
|
//==============================================================================
|
|
#ifndef REC_ACC_PER
|
|
#pragma message("[undefined] REC_ACC_PER")
|
|
#elif(REC_ACC_PER)
|
|
RetrieveLastAccumulation();
|
|
#endif
|
|
|
|
}
|
|
|
|
//******************************************************************************
|
|
// Auto-check
|
|
void SystemHardWareAutoCheck(void)
|
|
{
|
|
u8 rand;
|
|
|
|
systemAlarm.Word = 0;
|
|
|
|
for(rand = 0; rand < 6; rand++) Dis1[rand] = 0;
|
|
|
|
// 1) check CRYSTAL
|
|
// if(AutoCheckCrystal())
|
|
// {
|
|
// Dis1[CHK_CRYSTAL] = 1;
|
|
// systemAlarm.Bit.CrystalAlarm = 1;
|
|
// }
|
|
|
|
// 2) Check calib memory
|
|
rand = ReadByteFromEEPROM(0, PARA_EEPROM);
|
|
rand++;
|
|
WriteByteToEEPROM(0, rand, PARA_EEPROM);
|
|
if(rand != ReadByteFromEEPROM(0, PARA_EEPROM))
|
|
{
|
|
systemAlarm.Bit.EEPROMAlarm = 1;
|
|
Dis1[CHK_PARA] = 1;
|
|
}
|
|
|
|
// 3) Check data memory
|
|
rand = ReadByteFromEEPROM(0, DATA_EEPROM);
|
|
rand++;
|
|
WriteByteToEEPROM(0, rand, DATA_EEPROM);
|
|
if(rand != ReadByteFromEEPROM(0, DATA_EEPROM))
|
|
{
|
|
systemAlarm.Bit.EEPROMAlarm = 1;
|
|
Dis1[CHK_DATA] = 1;
|
|
}
|
|
|
|
// // 4) Check acc memory
|
|
// rand = ReadByteFromFRAM(0);
|
|
// rand++;
|
|
// WriteByteToFRAM(0, rand);
|
|
// if(rand != ReadByteFromFRAM(0))
|
|
// {
|
|
// systemAlarm.Bit.EEPROMAlarm = 1;
|
|
// Dis1[CHK_ACC] = 1;
|
|
// }
|
|
|
|
// 7) Check external RTC and read current time
|
|
//FY SetRTCCurrentTime(); // set time to MCU RTC
|
|
|
|
// 7)Check external temprature
|
|
#ifndef ENABLE_USE_MCP9808
|
|
#pragma message("[undefined] ENABLE_USE_MCP9808")
|
|
#elif(ENABLE_USE_MCP9808)
|
|
if(ReadWordRegister(MID) != 0x0054)
|
|
{
|
|
systemAlarm.Bit.TempAlarm = 1;
|
|
Dis1[CHK_TEMP] = 1;
|
|
}
|
|
#endif
|
|
}
|
|
|
|
//******************************************************************************
|
|
void SystemHardWareInit(void)
|
|
{
|
|
/*SPI Bus Init=========================================================================*/
|
|
//TurnOffAnalogCircuit();
|
|
/*IIC Bus Init=========================================================================*/
|
|
// SI2C_Init();
|
|
|
|
/*Memory Init==========================================================================*/
|
|
EEPROMInit();
|
|
|
|
//if(REC_ACC_PER) FRAMInit();// Acc flowrate save enable bit
|
|
/*external tempreture Init============================================================*/
|
|
// HWState.EnableTempTest= 1;
|
|
// HWState.EnableTempInit=1;
|
|
// WriteWordRegister(CONFIG, SHUT_DOWN);//ÅäÖüĴæÆ÷³õʼ»¯
|
|
}
|
|
|
|
//******************************************************************************
|
|
void SystemInterfaceInit(void)
|
|
{
|
|
//uart init============================================================================
|
|
#ifndef ENABLE_USER_UART
|
|
#pragma message("[undefined] ENABLE_USER_UART")
|
|
#elif(ENABLE_USER_UART)
|
|
MainUartInit(baudRateVaule[baudRate]);
|
|
StartDMAForRxdMainUartData();
|
|
#endif
|
|
|
|
//iic init============================================================================
|
|
#ifndef ENABLE_USER_I2C
|
|
#pragma message("[undefined] ENABLE_USER_I2C")
|
|
#elif(ENABLE_USER_I2C)
|
|
I2C_Slave_Init(100000 , 0x02);
|
|
I2CAddr = localAddress;
|
|
#endif
|
|
}
|
|
|
|
//******************************************************************************
|
|
void InitGlobalVar(void)
|
|
{
|
|
u8 I;
|
|
|
|
jumpError = 0;
|
|
|
|
Clear_WDT();
|
|
//TXDMode = ENABLE_TXD_USE_DMA;
|
|
|
|
displayUpdate = 0;
|
|
flowRate = 0;
|
|
for(I=0; I<12; I++) Dis1[I] = 0;
|
|
for(I=0; I<ANX; I++) voltageDetected[I] = 0;
|
|
|
|
HWState.SampledOver = 0;
|
|
HWState.EnableCheck = 1;
|
|
currentMode.Bit.TurnOffSystem = 0;
|
|
|
|
//==============================================================================
|
|
// softVersion = (u16)SOFT_VERSION;
|
|
softVersion = (u16)VER_MV;
|
|
softVersion <<= 4;
|
|
softVersion |= (u16)VER_SV;
|
|
softVersion <<= 4;
|
|
softVersion |= (u16)VER_RV;
|
|
softVersion <<= 4;
|
|
softVersion |= (u16)VER_BV;
|
|
//=============================================================================
|
|
|
|
// 0x80~0xf0
|
|
protocol = 0;
|
|
localAddress = 1;
|
|
baudRate = BPS_38400; // BPS_9600 BPS_115200
|
|
minAnalogOutput = 0;
|
|
maxAnalogOutput = 0;
|
|
GDCFactorAType = 0;
|
|
filterTime = 0;
|
|
offsetGas = 0;
|
|
offsetGasA = 0;
|
|
flowUnit = 0;
|
|
alarmFunction = 0;
|
|
alarmOutDelay = 0;
|
|
alarmAcc = 0;
|
|
alarmUpperFlowRate = 0;
|
|
alarmLowerFlowRate = 0;
|
|
|
|
PulseLevel = 0;
|
|
//==============================================================================
|
|
// 0XF0~0XFF: write only (¹¦ÄÜÂë)
|
|
CMDComPassword = 0;
|
|
CMDCalOffset = 0;
|
|
CMDClrRecord = 0;
|
|
|
|
//==============================================================================
|
|
flowAccCumulationRemaining = 0;
|
|
flowAccumulationHex = 0;
|
|
//---------------------------------------------------------------------------
|
|
totalPulse = 0;
|
|
|
|
#ifndef ENABLE_DENSITY_DETECT
|
|
#pragma message("[undefined] ENABLE_DENSITY_DETECT")
|
|
#elif(ENABLE_DENSITY_DETECT)
|
|
density = 0;
|
|
densityFSParameter = 0;
|
|
#endif
|
|
|
|
displayMode.NeedForInit = 1;
|
|
}
|
|
|
|
/*******************************************************************************/
|
|
void SystemInitProcess(void)
|
|
{
|
|
InitGlobalVar(); //È«¾Ö±äÁ¿³õʼ»¯
|
|
SystemHardWareInit(); //ϵͳӲ¼þ³õʼ»¯
|
|
SystemHardWareAutoCheck(); //
|
|
SystemParameterInit(); //ϵͳ²ÎÊý³õʼ»¯
|
|
SystemInterfaceInit(); //ϵͳ½Ó¿Ú³õʼ»¯ //USER_UART
|
|
systmeState = 0xAA55;
|
|
}
|
|
|
|
|
|
|
|
|
|
|