⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainsys.h

📁 基于单片机的多费率电能表源程序
💻 H
字号:
#ifdef	MAINSYS_GLOBALS
#define	MAINSYS_EXT
#else
#define	MAINSYS_EXT extern
#endif

#define   CLOSE_PERIPHERY_PART	Stop_IrMdlt;HB_CKSTPR1=0xca;HB_CKSTPR2=0xe4

#define   VoltageLoseLve  116  //68	//0x125	//0x150//0x19c //the true valuale for 2.2/6.2
#define	  VoltageRstLve   126  //74	//0x12f	//0x160//0x190

#define   Gcst_PCR3Ini			0x80
#define   Gcst_PCR4Ini			0x05
#define   Gcst_PCR7Ini			0x03
#define   Gcst_CKSTPR1Ini		0x0ff
#define   Gcst_CKSTPR2Ini		0x65

#define   Lock_SysTimer  		HF_IENR1_IENTA=0;/*disable timer A interrupt*/
#define   Undo_SysTimer  		HF_IENR1_IENTA=1;/*enable timer A interrupt*/

#define   LowPowerGuard
#define   ApplyWatchDog
#define   TemperatureComp

#define  RATESHOW()\
{\
	switch(TimeSliceInfo.CurrentRateID)\
	{\
		case 2:\
			MeterRunningState|=0x40;\
			MeterRunningState&=0x7f;\
			break;\
		case 3:\
			MeterRunningState|=0x80;\
			MeterRunningState&=0xbf;\
			break;\
		case 4:\
			MeterRunningState|=0xc0;\
			break;\
		default:\
			MeterRunningState&=0x3f;\
			break;\
	}\
}
MAINSYS_EXT union Union_ByteDef  		TaskSign;
#define _Span10msTask 					TaskSign.BIT.b0
#define _PowerDown 						TaskSign.BIT.b1
#define _CommunicateReceiveEnableTask	TaskSign.BIT.b2
#define _SpanSecondTask					TaskSign.BIT.b3
#define _DatagramDeal  					TaskSign.BIT.b4
#define _ProgramRecord					TaskSign.BIT.b5
#define _SpanMinuteTask					TaskSign.BIT.b6
MAINSYS_EXT union Union_ByteDef  		StateSign;
#define _PowerTest_						StateSign.BIT.b0

MAINSYS_EXT union Union_ByteDef  		HardwareErrState;
#define _TCN75Err_ 						HardwareErrState.BIT.b0
#define _EepromErr_ 					HardwareErrState.BIT.b1
#define _Clock8025Err_					HardwareErrState.BIT.b2

#ifdef	ApplyWatchDog
	#define   ClearWatchDog	HB_TCSRW=0x7f;HB_TCW=1	                                    
#else
	#define ClearWatchDog  CloseWatchdog()
//#define Clear_WatchDog  
#endif

//IO方向控制寄存器为只读寄存器/

MAINSYS_EXT  INT8U PCR3Buf;
MAINSYS_EXT  INT8U PCR4Buf;
MAINSYS_EXT  INT8U PCR7Buf;
MAINSYS_EXT  INT16U	AdResult;
MAINSYS_EXT  INT8U VoltageLowCnt;
MAINSYS_EXT  INT8U MeterRunningState;

MAINSYS_EXT INT8U TempBufOfMain[40];
MAINSYS_EXT INT8U CountOf1dot64Ms;
MAINSYS_EXT INT8U CountOf10Ms;
MAINSYS_EXT INT8U CountOfSecond;

MAINSYS_EXT INT8U OldCompensateValue;

MAINSYS_EXT void Span10msTask(void);
MAINSYS_EXT void SpanSecondTask(void);
MAINSYS_EXT void SpanMinuteTask(void);//跨分任务
MAINSYS_EXT void main(void);
MAINSYS_EXT void abort(void);
MAINSYS_EXT void CloseWatchdog(void);
MAINSYS_EXT void EnableWatchdog();
MAINSYS_EXT void CheckPower(void);
MAINSYS_EXT void IOInit(void);
MAINSYS_EXT void TimerInit(void);
MAINSYS_EXT void DataInit(void);
MAINSYS_EXT void ADInit(void);
MAINSYS_EXT void TemperatureCompensate(void);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -