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

📄 datatype.h

📁 MSP430FE42X复费率电表DEMO(编译器 IAR 3.42A)
💻 H
字号:
typedef unsigned char BCD1[1];
typedef unsigned char BCD2[2];
typedef unsigned char BCD3[3];
typedef unsigned char BCD4[4];
typedef unsigned char BCD5[5];
typedef unsigned char BCD6[6];
typedef unsigned char BCD7[7];

typedef struct
{
  unsigned int  DspID;
  unsigned char *Addr1;
  //unsigned char Datatype;
  unsigned char Info[5];
} DSPINFO;

typedef struct
{
	unsigned char DispTime;						//每页显示的时间	
	unsigned char PagePtr;						// Page pointer
	unsigned char SecCtr;							// Second Counter当前页的秒计数
	unsigned char Mode:3;							//显示的模式:1.循环显示   2.固定显示
	unsigned char Switch:2;
	unsigned char DispOpt:3;	
} LCDCONTROL;												//字节数:4 bytes

typedef struct
{
	unsigned char Sec[1];
	unsigned char Min[1];
	unsigned char Hour[1];
	
	unsigned char Day[1];
	unsigned char Mon[1];
	unsigned char Year[2];

  unsigned char Week[1];
	unsigned char Time_Flag[1];
} CLKDEF;														//字节数:7 bytes


typedef struct
{
	unsigned char Fee[5][4];				//总、尖、峰、平、谷
  //unsigned char Fee[1][4];          //P,Q,S
} KWHGRP;														//电能组
																		//字节数:4x5=20 bytes
typedef struct
{
	BCD4 Fee[5];			// 4*5 bytes
} LMONBLK;



typedef struct
{
  KWHGRP  KwhPp;        						//正向有功
#ifndef NO_NEG_ENGER
  KWHGRP  KwhPn;        						//反向有功
#endif
  KWHGRP  KwhQp;                    //正向无功
#ifndef NO_NEG_ENGER
  KWHGRP  KwhQn;        						//反向无功
#endif
} MONBLK;														//月数据块   size=14*4*5+4*7*5=420*/

typedef struct
{
  unsigned char  ucPulsKwhPp;        						//正向有功
#ifndef NO_NEG_ENGER
  unsigned char  ucPulsKwhPn;        						//反向有功
#endif
  unsigned char  ucPulsKwhQp;                    //正向无功
#ifndef NO_NEG_ENGER
  unsigned char  ucPulsKwhQn;        						//反向无功
#endif
} PULSBLK;														//月数据块   size=14*4*5+4*7*5=420*/


typedef struct
{
  unsigned long long ullAccKwhPp;
#ifndef NO_NEG_ENGER
  unsigned long long ullAccKwhPn;
#endif
  unsigned long long ullAccKwhQp;
#ifndef NO_NEG_ENGER
  unsigned long long ullAccKwhQn;
#endif
} ACCUMULATE;


typedef struct
{
	int           iPhaseCorr1;
#ifdef TAMPER_DETECTION
  int           iPhaseCorr2;
#endif
  //int           iV1Offset;
  //int           iI1Offset;
#ifdef TAMPER_DETECTION
  //int           iI2Offset;
  unsigned int  uiAdaptI1;
  unsigned int  uiAdaptI2;
#endif
  unsigned int  uiGainCorr1;
	long          lPowerOffset1;
#ifdef TAMPER_DETECTION
  unsigned int  uiGainCorr2;
  long          lPowerOffset2;
#endif
//  unsigned long ulIntrptLevl;

//  unsigned int  uiCalCyclCnt;

  unsigned long ulStartCurrent;

  unsigned int  uiNomFreq;

//  unsigned char ucVDropCycls;
#ifdef TAMPER_DETECTION
  unsigned int  uiRatioTamp;

  unsigned int  uiITamp;
#endif
  unsigned int  uiVDropLevel;

  unsigned int  uiVPeakLevel;

  unsigned int  uiIPeakLevel;

  unsigned char ucDcRemPer;
#ifdef TAMPER_DETECTION
	int           iPowerCorr2;
#endif
  unsigned int  uiV1Gain;

  unsigned long  ulIGain;

  signed int    iTempSampleOffset;

#if	PULSE_MEASURE_MODE==2	
	unsigned long ulIntrptLevl;
#endif	

} ESP_PAR;														//电表配置参数418	bytes

typedef struct
{
	unsigned int FeeNo:2;			// Bit[ 1~0]:  					 nn
	unsigned int Tmr:14;			// Bit[15~2]:  hh hhhh mmmm mmmm
} TARILIST;

typedef struct
{
  BCD6 MetID;												//表号        6	bytes
	//BCD6 CustID;											//用户号      6	bytes
	//BCD6 MachID;											//设备号      6	bytes
	BCD4 Pswd[2];											//电表密码    4	bytes

  BCD2 MetStatus;

  ESP_PAR     EspPar;
  //unsigned int  ParamChk;
  
  TARILIST TariList[8];
  BCD1 FeeNo;

  //unsigned char ucCalibrationMode;
  //unsigned char ucCalibrationOption;
  unsigned char ucFlashOperated[2];
}CONFIG;

typedef struct
{
  unsigned int CfgChk;							
	CONFIG Cfg;

  unsigned int LcdChk;
  LCDCONTROL LcdCtl;

  unsigned int ClkBcdChk;						//              2 bytes
	CLKDEF ClkBcd;										//BCD的型式     7	bytes

  unsigned int ClkHexChk;						//              2	bytes
	CLKDEF ClkHex;										//16进制的型式  7	bytes
  unsigned char ClkHexLeap;

  unsigned int LMonChk;			// 2
  MONBLK LMon;			// 20
  //LMONBLK LMon;			// 20
  

  unsigned int CMonChk;							
	MONBLK CMon;

  unsigned int PulsChk;
  PULSBLK Puls;

  unsigned int AccChk;
  ACCUMULATE   Acc;

  long lTimeErrAcc;
	
#if	PULSE_MEASURE_MODE==2
	unsigned int uiActIntrptLevlCounter;
	unsigned int uiActEPulse;
#endif	
	

}SRAM;



typedef struct
{
  long          lActEnergy1;
  long          lActEnergy2;
  long          lReActEnergy;
  long          lAppEnergy;
  long          lActensper1;
  long          lActensper2;

  unsigned int  uiPowerFct;
  int           iCapInd;
  unsigned long ulMainsPeriod;
  unsigned int  uiMainsCnt;

  unsigned int  uiV1Rms;
  unsigned long ulIRms;

}ESP_RS;



typedef struct
{
	BCD3               ubActPower1;
#ifdef TAMPER_DETECTION
  BCD3               ubActPower2;
#endif
  BCD3               ubReActPower;
  BCD3               ubAppPower;

  BCD3               ubV1RMS;
  BCD3               ubIRMS;

  BCD3               ubPF;
  BCD2               ubMainFr;

  BCD1               ubTemperature;

  ESP_RS             EspRs;

  unsigned long      ulActP1;
#ifdef TAMPER_DETECTION
  unsigned long      ulActP2;
#endif
  unsigned long      ulReActP;
  unsigned long      ulAppP;
  unsigned int       uiV1Rms;
  unsigned long      ulIRms;

  unsigned long      ulMainsPeriodBak;
  unsigned long long ullMainsCntBak;
  unsigned int       uiMainsFrequency;
  int                iPf;

  unsigned long      ulLastActP;
  //unsigned long      ulLastReActP;

 // unsigned int       uiMeterState;

  unsigned int       uiEspState;
  //unsigned char P595OUT;


  //unsigned int  iTempSampleOffset;
  unsigned int  iTempSample;
  int           iTemperature;
  unsigned char ucTempCnt;
	
  unsigned char ucKeyFlg;			        //按键标志
  unsigned char ucKeyTmr;			        //按键定时
	unsigned char ucKeySec;
  unsigned char ucKeyMode;
  unsigned char ucKeyCalibrationMode;
  unsigned char ucKeyCalibrationStep;

	unsigned int  ADCresultTemp;			//温度转换值                 2	bytes
	unsigned int  ADCresultBatt;			//电池转换值                 2	bytes
	unsigned int  CumulationPPM;			//累积时间偏差               2	bytes
	unsigned int  ChkTmr;							//                           2	bytes





	unsigned  int  ComTmr;			      //通讯定时                   2	bytes
	unsigned char  ComBuf[64];				//通讯缓冲区                 64	bytes
	unsigned char  ComPtr;						//通讯字节数                 1	bytes
	unsigned char  ComFlg;			      //通讯标志
	unsigned char  ComLedTmr;					//通讯指示灯定时
  //unsigned char  ComSta;						//                           1	bytes
  unsigned int   ComBytTmr;


	unsigned char WakeFlg;						//程序唤醒标志
	unsigned char ClkFlg;			        //时钟标志
	
	
	unsigned char PwrFlg;			        //
	unsigned char CsFlg;			        //字节奇偶校验标志
	unsigned char RunFlg;			        //
	unsigned char E2Flg;			        //EEP的标志
	unsigned char Flags;			        //
	unsigned char ErrFlg;			        //
	

	unsigned char ADCVector;					//AD中断向量中的标志         14*1	bytes
	
	unsigned char bt_int;							//BT中断计时                 1	bytes
	
	//unsigned char LCD[20];						//LCD缓冲区                  20	bytes
	
	unsigned char MetStatus;					//电表状态:通常与校表状态   1	bytes
	unsigned char tmpPtr[1];					//临时指针                   1	bytes
	signed char  Temp;								// 温度,有正负              1	bytes
	unsigned char BattVoltage;				// 电池电压                  1	bytes
	unsigned char VolFlg[2];					// [0]是当前的状态           2	bytes
	unsigned char EngSign;																	// [1]是上次的状态
	unsigned char ucBtCycle;
  unsigned int  uiESP430_STAT0;
  unsigned char ucReActPulseCycle;
#if PCB_VERSION == 0
  unsigned char ucP595OUT;
#endif

  unsigned char ucEspCalStep;

  unsigned char ucCalibrationMode;

  unsigned char ucChkFlg;

//  long lHImeas;
//  long lLOmeas;



  long lI1HImeas;
  long lI1LOmeas;
#ifdef TAMPER_DETECTION
  long lI2HImeas;
  long lI2LOmeas;
#endif

}DRAM;                              //                           197+224=421	bytes

⌨️ 快捷键说明

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