Files
CHJ/user/Main/MainCore.h

240 lines
10 KiB
C
Raw Permalink Normal View History

2026-03-20 21:16:58 +08:00
/********************************************************************************************************
** ȫ<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
{
2026-03-20 21:19:53 +08:00
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>־
2026-03-20 21:16:58 +08:00
} __System_Status_Bit_TypeDef;
typedef union
{
__System_Status_Bit_TypeDef Bit;
u16 Word;
u8 Byte[2];
}__SystemState_Union_TypeDef;
typedef struct
{
2026-03-20 21:19:53 +08:00
u16 ZeroCalib: 1; // 0
u16 DebugMode: 1; // 1
u16 CalibMode: 1; // 2
2026-03-20 21:16:58 +08:00
} __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
2026-03-20 21:19:53 +08:00
u16 ReadParameterOK: 1; // 13
u16 MainTimerOut: 1; // 13
u16 ProcessTimerOut: 1; // 13
2026-03-20 21:16:58 +08:00
} __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;
2026-03-20 21:19:53 +08:00
2026-03-20 21:16:58 +08:00
//**********************************************************************************************
//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;
2026-03-20 21:19:53 +08:00
extern __SystemProcess_Union_TypeDef systemProcessing;
2026-03-20 21:16:58 +08:00
extern __SystemState_Union_TypeDef currentMode;
extern __Alarm_State_TypeDef systemAlarm;
//----------------------------------------------------------------------------------------------
extern u32 securityID;
2026-03-20 21:19:53 +08:00
extern u16 IDvalidTime, comCounter, AutoOffsetCounter, timePeriod, autoTxdCounter, SysVolErrorCount;
2026-03-20 21:16:58 +08:00
extern u16 calibType;
extern u16 curveMode;
//----------------------------------------------------------------------------------------------
extern u8 Dis1[15], timer[8];
2026-03-20 21:19:53 +08:00
extern u16 displayCNT;
2026-03-20 21:16:58 +08:00
extern __Display_Status_Bit_TypeDef displayMode;
//----------------------------------------------------------------------------------------------
2026-03-20 21:19:53 +08:00
//extern u32 unitPerPulse;
2026-03-20 21:16:58 +08:00
//----------------------------------------------------------------------------------------------
// for flowrate
extern u16 displayUpdate;
extern u32 currentFlowRate;
2026-03-20 21:19:53 +08:00
extern u16 samplingInterval, responseTimeIndex, samplingIntervalTarget;
2026-03-20 21:16:58 +08:00
extern u16 systemVoltage, batteryGrid;
2026-03-20 21:19:53 +08:00
//extern u16 calibTemperature;
2026-03-20 21:16:58 +08:00
//**********************************************************************************************
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[];
//**********************************************************************************************
2026-03-20 21:19:53 +08:00
//extern void SetDisplayUpdateTime(void);
//extern void DisableDisplayTimerInterrupt(void);
//extern void ReadCurrentTime(void);
2026-03-20 21:16:58 +08:00
void EnterUserMode(void);
void EnterCalibMode(void);
void EnterZeroCalibMode(void);
void EnterBatteryMode(void);
void EnterDebugMode(void);
void EnterGcfTestMode(void);
2026-03-20 21:19:04 +08:00
void ModeExitCount(void);
2026-03-20 21:19:53 +08:00
void ManagePrimaryTimeInterval(void);
2026-03-20 21:16:58 +08:00
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