/******************************************************************************************************** ** 全局常数与子程序定义头文件 ** ** Copyright (c) Siargo, Ltd. 2010 ** All Rights Reserved. ** **------------------------------------------------------------------------------------------------------- ********************************************************************************************************/ #ifndef __MainCore_H__ #define __MainCore_H__ #include "../User/Main/ConstDefine.h" //使用中中断优先级配置 //#define IRQ_PRIORITY_SYSTICK (0x04) // SysTick 中断优先级,调用内核函数SysTick_Config时默认是4,这里先不做更改 #define IRQ_PRIORITY_RTC (0x0A) // RTC 中断优先级,中等优先级 #define IRQ_PRIORITY_RTC_ALARM (0x08) // RTC 中断优先级,中等优先级 #define IRQ_PRIORITY_TIMER1 (0x06) // TIMER1 中断优先级,较高优先级 #define IRQ_PRIORITY_TIMER2 (0x07) // TIMER2 中断优先级,中等偏高优先级 #define IRQ_PRIORITY_DMA (0x06) #define IRQ_PRIORITY_USART1 (0x05) #define IRQ_PRIORITY_ADC (0x04) //#define IRQ_PRIORITY_EXTI0 (0x0F) typedef struct { u16 I2CHandle: 1; // 0 u16 DisplayHandle: 1; // 1 u16 FRHandle: 1; // 2 u16 KeyHandle: 1; // 3 u16 TempHandle: 1; // 4 u16 SaveHandle: 1; // 5 u16 WriteHandle: 1; // 6 } __SystemProcess_Bit_TypeDef; typedef union { __SystemProcess_Bit_TypeDef Bit; u16 Word; u8 Byte[2]; }__SystemProcess_Union_TypeDef; typedef struct { u16 ExtPowerInput: 1; // 0 外部电源输入 u16 FactoryTestMode: 1; // 1 工厂测试模式 u16 ZeroCalib: 1; // 2 零点高低温标定模式 u16 CalibMode: 1; // 3 校准模式 u16 DebugMode: 1; // 4 调试模式 u16 TurnOffSystem: 1; // 5 关闭系统 u16 ComModeOperate: 1; // 6 串口操作模式 u16 DigitOutput: 1; // 7 允许数据输出 u16 IntCalibMode: 1; // 8 内部标定模式 u16 LowCalibEnd : 1; // 9 低温标定完成标志 u16 HighCalibEnd : 1; // 10 高温标定完成标志 u16 PreCalibEnd : 1; // 11 校准前零点等参数写入完成标志 } __System_Status_Bit_TypeDef; typedef union { __System_Status_Bit_TypeDef Bit; u16 Word; u8 Byte[2]; }__SystemState_Union_TypeDef; typedef struct { u16 ZeroCalib: 1; // 0 u16 DebugMode: 1; // 1 u16 CalibMode: 1; // 2 } __HW_Switch_BIT_TypeDef; typedef union { __HW_Switch_BIT_TypeDef Bit; u16 Word; u8 Byte[2]; }__HWSwitch_Union_TypeDef; typedef struct { u16 SampledOver: 1; // 0 u16 ReverseFlow: 1; // 1 u16 EnableCheck: 1; // 2 u16 EnableCheckCorr: 1; // 3 u16 InChecking: 1; // 4 u16 EnableSaveData: 1; // 5 u16 EnableSaveDateAcc: 1; // 6 u16 EnableSaveHistoryData: 1; // 7 u16 EnableSaveRTC: 1; // 8 u16 EnableTempTest: 1; // 9 u16 EnableTempInit: 1; // 10 u16 KeyPressed: 1; // 11 u16 PulseOperate: 1; // 12 u16 ReadParameterOK: 1; // 13 u16 MainTimerOut: 1; // 13 u16 ProcessTimerOut: 1; // 13 } __Hardware_Status_Bit_TypeDef; typedef struct { u16 NoDisplay: 1; // 0 u16 FlashUpdate: 1; // 1 u16 InitUpdate: 1; // 2 u16 NormalUpdate: 1; // 3 u16 NeedForInit: 1; // 4 } __Display_Status_Bit_TypeDef; //********************************************************************************************** //extern u16 MAPBuffer1,MAPBuffer2,MAPBuffer3,MAPBuffer4,MAPBuffer5,MAPBuffer6,MAPBuffer7,MAPBuffer8; //extern u16 MAPBuffer9,MAPBuffer10,MAPBuffer11,MAPBuffer12,MAPBuffer13,MAPBuffer14,MAPBuffer15,MAPBuffer16; //extern u16 MAPBuffer17,MAPBuffer18,MAPBuffer19,MAPBuffer20,MAPBuffer21,MAPBuffer22,MAPBuffer23,MAPBuffer24; //extern u16 MAPBuffer25,MAPBuffer26,MAPBuffer27,MAPBuffer28,MAPBuffer29,MAPBuffer30,MAPBuffer31,MAPBuffer32; //extern u16 MAPBuffer33,MAPBuffer34,MAPBuffer35,MAPBuffer36,MAPBuffer37,MAPBuffer38,MAPBuffer39,MAPBuffer40; //extern u16 MAPBuffer41,MAPBuffer42,MAPBuffer43,MAPBuffer44,MAPBuffer45,MAPBuffer46,MAPBuffer47,MAPBuffer48; // 0x30~0x7f //extern u8 meterSN[12]; // 10996; //extern u16 alarmState,alarmState1,alarmState2,alarmState3; // 10988; //extern u32 flowRate; //extern s32 flowAccumulationInteger; //extern u16 flowAccumulationDecimal; //extern s16 PCBTemperature,GasTemperature; //extern s32 GASPressure; //extern u16 batteryCY,batteryVoltage,batteryDay,batteryRDay,ComBatteryCY,ComBatteryVoltage,ComBatteryDay; //extern u16 ComBatteryRDay,useMinte; //extern u32 useHour; //extern u16 VHHParameter; //10936; // 实时识别系数差值 //extern s64 flowAccumulationHex; //10924; // 实时识别系数差值 ////============================================================================== //extern u16 softCRCCode,softVersion; //10848; // 软件版本 //============================================================================== // 0x80~0xf0 //extern u16 protocol,localAddress,baudRate; //extern u32 minFlowRate,maxFlowRate,minAnalogOutput,maxAnalogOutput; //extern u16 GDCFactor,filterTime,responseTime,offsetGas,offsetGasA,flowUnit,VHHParameterAir,VHHParameterScale; //extern s16 factoryUnitPerPulse; //extern u16 PulseLevel,samplingTiming; //extern u32 alarmAcc,alarmUpperFlowRate,alarmLowerFlowRate; //extern u16 alarmFunction,alarmOutDelay,uartDecimalPoint,historyPeriod; //extern u32 reverseFlowRateMin,reverseFlowRateMax; //extern u16 I2CAddr,I2CCrcMod,timingTxdStart,timingTxdLen,timingTxdTime,pressureOffset; //extern u32 keyPassWord; //extern u16 density,densityFSParameter,minLeakFlowRate,maxLeakFlowRate,leakDetectTime,GDCFactorAType; ////============================================================================== //// 0XF0~0XFF: write only (功能码) //extern u16 CMDCalOffset,CMDClrRecord,CMDComPassword; ////============================================================================== //extern u16 MAPPoint1,MAPPoint2,MAPPoint3,MAPPoint4,MAPPoint5,MAPPoint6,MAPPoint7,MAPPoint8; //extern u16 MAPPoint9,MAPPoint10,MAPPoint11,MAPPoint12,MAPPoint13,MAPPoint14,MAPPoint15,MAPPoint16; //extern u16 MAPPoint17,MAPPoint18,MAPPoint19,MAPPoint20,MAPPoint21,MAPPoint22,MAPPoint23,MAPPoint24; //extern u16 MAPPoint25,MAPPoint26,MAPPoint27,MAPPoint28,MAPPoint29,MAPPoint30,MAPPoint31,MAPPoint32; //extern u16 MAPPoint33,MAPPoint34,MAPPoint35,MAPPoint36,MAPPoint37,MAPPoint38,MAPPoint39,MAPPoint40; //extern u16 MAPPoint41,MAPPoint42,MAPPoint43,MAPPoint44,MAPPoint45,MAPPoint46,MAPPoint47,MAPPoint48; //------------------------------------------------------------------------------ //***************************************************************************** //for modbus >16bit register define extern u32 flowRate,flowAccumulationInteger; extern s32 GASPressure; extern u64 flowAccumulationHex; extern u32 minFlowRate,maxFlowRate,minAnalogOutput,maxAnalogOutput; extern u32 alarmAcc,alarmUpperFlowRate,alarmLowerFlowRate; extern u32 reverseFlowRateMin,reverseFlowRateMax; extern u32 keyPassWord; //***************************************************************************** extern u16 systmeState ; extern u16 UPGRADECammand ; extern u16 CodeCRC ; extern u16 jumpError ; //********************************************************************************************** extern __Hardware_Status_Bit_TypeDef HWState; extern __SystemProcess_Union_TypeDef systemProcessing; extern __SystemState_Union_TypeDef currentMode; extern __Alarm_State_TypeDef systemAlarm; //---------------------------------------------------------------------------------------------- extern u32 securityID; extern u16 IDvalidTime, comCounter, AutoOffsetCounter, timePeriod, autoTxdCounter, SysVolErrorCount; extern u16 calibType; extern u16 curveMode; //---------------------------------------------------------------------------------------------- extern u8 Dis1[15], timer[8]; extern u16 displayCNT; extern __Display_Status_Bit_TypeDef displayMode; //---------------------------------------------------------------------------------------------- //extern u32 unitPerPulse; //---------------------------------------------------------------------------------------------- // for flowrate extern u16 displayUpdate; extern u32 currentFlowRate; extern u16 samplingInterval, responseTimeIndex, samplingIntervalTarget; extern u16 systemVoltage, batteryGrid; //extern u16 calibTemperature; //********************************************************************************************** extern u16 tmpIA; extern s32 tmpSLA, tmpSLB; extern u32 tmpLA, tmpLB; extern TypeWord tempWord; extern TypeLong tempL; extern TypeLongLong tempDev; //********************************************************************************************** //extern u8 temp[128]; //--------------------------------------------------------------------------------------------- extern const u8 ProductModel[]; extern const u8 SoftVersion[]; extern const u8 SoftBuildDate[]; extern const u8 PulseOutGain[]; // extern const u8 FilterMax[]; // filter depth extern const u16 Timing[]; extern const u16 TimeVaule[]; //0.125s,0.25s, 0.5s, 1s, 2s, 4s extern const u16 UpdateTimeVaule[]; // 0.235s, 0.45s, 0.5s, 1s, 2s extern const u16 FRUnitForHour[]; extern const u16 FRUnitForMinute[]; //********************************************************************************************** //extern void SetDisplayUpdateTime(void); //extern void DisableDisplayTimerInterrupt(void); //extern void ReadCurrentTime(void); void EnterUserMode(void); void EnterCalibMode(void); void EnterZeroCalibMode(void); void EnterBatteryMode(void); void EnterDebugMode(void); void EnterGcfTestMode(void); void ModeExitCount(void); void ManagePrimaryTimeInterval(void); void EnterMainEntry(void); void BackupParameterToFlash(void); void SystemParameterInit(void); void SystemHardWareAutoCheck(void); void SystemHardWareInit(void); void SystemInterfaceInit(void); void InitGlobalVar(void); void SystemInitProcess(void); #endif