240 lines
10 KiB
C
240 lines
10 KiB
C
|
|
/********************************************************************************************************
|
|||
|
|
** ȫ<EFBFBD>ֳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD>
|
|||
|
|
**
|
|||
|
|
** Copyright (c) Siargo, Ltd. 2010
|
|||
|
|
** All Rights Reserved.
|
|||
|
|
**
|
|||
|
|
**-------------------------------------------------------------------------------------------------------
|
|||
|
|
********************************************************************************************************/
|
|||
|
|
#ifndef __MainCore_H__
|
|||
|
|
#define __MainCore_H__
|
|||
|
|
#include "../User/Main/ConstDefine.h"
|
|||
|
|
|
|||
|
|
//ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//#define IRQ_PRIORITY_SYSTICK (0x04) // SysTick <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>ں˺<DABA><CBBA><EFBFBD>SysTick_ConfigʱĬ<CAB1><C4AC><EFBFBD><EFBFBD>4<EFBFBD><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define IRQ_PRIORITY_RTC (0x0A) // RTC <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ȼ<EFBFBD>
|
|||
|
|
#define IRQ_PRIORITY_RTC_ALARM (0x08) // RTC <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ȼ<EFBFBD>
|
|||
|
|
#define IRQ_PRIORITY_TIMER1 (0x06) // TIMER1 <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD>ȼ<EFBFBD>
|
|||
|
|
#define IRQ_PRIORITY_TIMER2 (0x07) // TIMER2 <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD>е<EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>
|
|||
|
|
#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 <20>ⲿ<EFBFBD><E2B2BF>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
|
|||
|
|
u16 FactoryTestMode: 1; // 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
|||
|
|
u16 ZeroCalib: 1; // 2 <20><><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5>±궨ģʽ
|
|||
|
|
u16 CalibMode: 1; // 3 Уģʽ
|
|||
|
|
u16 DebugMode: 1; // 4 <20><><EFBFBD><EFBFBD>ģʽ
|
|||
|
|
u16 TurnOffSystem: 1; // 5 <20>ر<EFBFBD>ϵͳ
|
|||
|
|
u16 ComModeOperate: 1; // 6 <20><><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>ģʽ
|
|||
|
|
u16 DigitOutput: 1; // 7 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
u16 IntCalibMode: 1; // 8 <20>ڲ<EFBFBD><DAB2>궨ģʽ
|
|||
|
|
u16 LowCalibEnd : 1; // 9 <20><><EFBFBD>±궨<C2B1><EAB6A8><EFBFBD>ɱ<EFBFBD>־
|
|||
|
|
u16 HighCalibEnd : 1; // 10 <20><><EFBFBD>±궨<C2B1><EAB6A8><EFBFBD>ɱ<EFBFBD>־
|
|||
|
|
u16 PreCalibEnd : 1; // 11 Уǰ<D7BC><C7B0><EFBFBD><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־
|
|||
|
|
} __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; // ʵʱʶ<CAB1><CAB6>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>ֵ
|
|||
|
|
//extern s64 flowAccumulationHex; //10924; // ʵʱʶ<CAB1><CAB6>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>ֵ
|
|||
|
|
////==============================================================================
|
|||
|
|
//extern u16 softCRCCode,softVersion; //10848; // <20><><EFBFBD><EFBFBD><EFBFBD>汾
|
|||
|
|
//==============================================================================
|
|||
|
|
// 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 (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
|
//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<EFBFBD><EFBFBD>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
|