📄 sysdatatree(eric).h.bak
字号:
{
unsigned long rPKwhPwr_Dtr[MAX_Fn+1]; // 4byte(当前)正向有功总、费率电能(+A) XXXXXXXX.XX kwh
unsigned char rPKwhPwrSum_Dtr[1]; // 1byte 上述总、费率电能(20)字节之和
};
};
union //反向有功
{
unsigned char rNPwrKwh_Dtr[(MAX_Fn+1)*4+1];
struct
{
unsigned long rNKwhPwr_Dtr[MAX_Fn+1]; // 4byte(当前)反向有功总、费率电能(-A) XXXXXXXX.XX kwh
unsigned char rNKwhPwrSum_Dtr[1]; // 1byte 上述总、费率电能(20)字节之和
};
};
union //正向无功
{
unsigned char rPPwrKvarh_Dtr[(MAX_Fn+1)*4+1];
struct
{
unsigned long rPKvarhPwr_Dtr[MAX_Fn+1]; // 4byte(当前)正向无功总、费率电能(+A) XXXXXXXX.XX kwh
unsigned char rPKvarhPwrSum_Dtr[1]; // 1byte 上述总、费率电能(20)字节之和
};
};
/***************** 二、 系统时间数据 *********************/
union
{
unsigned char rSysTmDt_Dtr[8]; //系统时间日期(ss.mm.hh ww DD-MM-YY)
struct
{
unsigned char rTime_Dtr[3]; //系统时间 C010
unsigned char rDateWk_Dtr[4]; //系统日期 C011
};
unsigned char TimeBuffer[8];
struct
{
unsigned char Second; //秒
unsigned char Minute; //分
unsigned char Hour; //时
unsigned char Date; //日
unsigned char Month; //月
unsigned char Year; //年
unsigned char Week; //周
unsigned char TimeSum; //上述7个字节校验和
};
};
/*--------------------------------------------------------------------------------------------------------------*/
};
};
/*------------------------------------------------------------------------------------------------------------------------*/
/**************** 电网参数 **********************/
extern __idata volatile union{
unsigned char rEletricityNet_Dtr[7];
struct{
unsigned int rVoltage_Dtr[1]; //当前电压有效值
unsigned int rCurrent_Dtr[1]; //当前电流有效值
unsigned char rPower_Dtr[3]; //当前功率
};
};
//-------------------------------------------------------------------------------------------------------------------
/****************** 系统参数 ******************/
extern __data unsigned char rVBAT_Dtr[2]; // 2byte 当前电池电压 nnnn
extern __data unsigned char rTemperature_Dtr[1]; // 1byte 当前温度 NN
extern __data unsigned char rMtWd_Dtr[1]; // 1byte 电表运行状态字(见附录B1)XX
extern __data unsigned char rPwrNtWd_Dtr[1]; // 1byte 电网状态字(见附录B2) XX
extern __idata union{
unsigned char rCommParamter[41];
struct // 每次通信需要刷新的数据
{
unsigned char rMtCt_Dtr[3]; // 3byte 电表常数(只读) NNNNNN
unsigned char rShftDspTm_Dtr[1]; // 1byte 循显时间 XX s
unsigned char rStpDspTm_Dtr[1]; // 1byte 循显间隔时间 NN s
unsigned char rOpnClsLcd_Dtr[4]; // 4byte 开显示/关显示时间 hhmm-hhmm 时分-时分
unsigned int rRttDspNo_Dtr[16]; // 32byte 16项个正常显示序号存放区序号
};
};
//----------------------------------------------------------------------------------------------------------------
/************** 计时器-缓冲区 ****************/
extern __data union
{
unsigned char Timers[7];
struct
{
unsigned char SecCount; // 秒计数
unsigned char CommByte_Time; // 通信字节之间延时(ms)
unsigned char CommHWDelyTime; // 红外通信时间(ms)
unsigned char Disp_Time; // LCD显示计时(s)
unsigned char Key_Time; // 编程按键有效时间(min)
unsigned char MinCount; // 分计时(s)
unsigned char DQ_Fl; // 当前费率
unsigned char CF_const; // 脉冲常数
unsigned char CF1Count; //CF1(有功)脉冲计数
unsigned char CF2Count; //CF2(无功)脉冲计数
};
};
//----------------------------------------------------------------------------------------------------------------
/************** 系统标志-缓冲区 ****************/
extern __bdata __no_init volatile union
{
unsigned char TaskFlg; // 任务标志
struct
{
unsigned char Disp_Flg : 1; //停显标志
unsigned char RTC_Min_Flg: 1; //RTC分钟标志
unsigned char WatchDog_Flg: 1; //喂狗标志
unsigned char RTC_Date_Flg: 1; //RTC日标志,即一天过00:00:00标志
unsigned char RTC_Sec_Flg: 1; //RTC秒标志
unsigned char SaveData_Flg: 1; //Vin电源掉电标志。(ct供电时有可能在此状态工作)
unsigned char Run_Mode: 1; //工作模式
unsigned char E2_Op_Flg: 1; //E2PROM正在操作标志
} ;
}; // @ 0x28;
extern __bdata __no_init volatile union
{
unsigned char StatFlg; //状态标志
struct
{
unsigned char FX_Flg : 1; //电流反向用电标志 S1
unsigned char Key : 1; //按键操作 S3
unsigned char Comm_Flg : 1; //通信标志 S4
unsigned char DiQi_Flg : 1; //电池欠压标志 S5
unsigned char DongTine_Flg : 1; //冬天用电标志 S6
unsigned char Key_Flg : 1; //开锁-编程允许标志 S2
unsigned char TEMP_Flg: 1; //温度变化标志,需要进行一些温度补偿
unsigned char PowerMeasure: 1; //功率测量标志
};
}; // @ 0x29;
extern __bdata __no_init volatile union
{
unsigned char sysErrFlg; //系统错误标志
struct
{
unsigned char E2PROM_ERR : 1; //E2PROM出错标志
unsigned char Energy_ERR : 1; //能量模块出错标志
unsigned char : 1; //
unsigned char : 1; //
unsigned char : 1; //
unsigned char : 1; //
unsigned char : 1;
unsigned char : 1;
};
}; // @ 0x2A;
extern __data unsigned char SysErrNumb; //系统错误标号
// 系统错误标号记录说明
#define SysErr_I2C 1 // sysErrNumb = 0: I2C操作出错标志
#define SysErr_E2prom 2 // sysErrNumb = 1: E2PROM 读写数据错误
//-------------------------------------------------------------------------------------------------------
/*************** 系统数据结构树 ****************/
extern const SysDataStruct SysDataTree[]; //系统数据结构树
// 系统初始参数表(151字节)
//extern __code const struct PParamtTree;
//========================================================================================================
// 外部使用函数
unsigned int Search(unsigned int sign);
unsigned char DataAdrCheck(unsigned int data);
void MoveData_Api( unsigned int Sdata,unsigned int Ddata,unsigned char Len);
unsigned int GetDataTree_Adr_Len(unsigned int iD,unsigned char *len);
void SysData_Init(void);
void PutData_Api(unsigned char data,unsigned int DataAdr,unsigned char DaAtt);
unsigned char GetData_Api(unsigned int DataAdr,unsigned char DaAtt);
unsigned char DataSum(unsigned char __idata *Data,unsigned char Len);
void SaveData(void);
//===============================================================================================
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -