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

📄 sysdatatree(eric).h.bak

📁 一个电表的程序
💻 BAK
📖 第 1 页 / 共 2 页
字号:
       {
         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 + -