240 lines
10 KiB
C
Executable File
240 lines
10 KiB
C
Executable File
/********************************************************************************************************
|
||
** 全局常数与子程序定义头文件
|
||
**
|
||
** 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 |