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

📄 storage.h

📁 用ADE7169F16单片机实现了单向多费4率电能表
💻 H
📖 第 1 页 / 共 2 页
字号:
#define ZT_OFFSET_MONTH                    2                                     // 时区信息(月)                - 1字节
#define ZT_OFFSET_DAY                      1                                     // 时区信息(日)                - 1字节
#define ZT_OFFSET_POTNUM                   0                                     // 时区信息(日时段表号)         - 1字节

/* 公共假日定义(MMDDNN) */
#define BASE_PUBV                          (unsigned short)(BASE_ZTSTA+BASE_ZTSTA_OFFSET*12)
#define BASE_PUBV_OFFSET                   3

#define ADDR_OF_PUBV_01                    (unsigned short)(BASE_PUBV+BASE_PUBV_OFFSET*0)        // 第1公共假日日期及日时段表号  - 3字节 - C411 - 95.
#define ADDR_OF_PUBV_02                    (unsigned short)(BASE_PUBV+BASE_PUBV_OFFSET*1)        // 第2公共假日日期及日时段表号  - 3字节 - C412 - 95.01
#define ADDR_OF_PUBV_03                    (unsigned short)(BASE_PUBV+BASE_PUBV_OFFSET*2)        // 第3公共假日日期及日时段表号  - 3字节 - C413 - 95.02
#define ADDR_OF_PUBV_04                    (unsigned short)(BASE_PUBV+BASE_PUBV_OFFSET*3)        // 第4公共假日日期及日时段表号  - 3字节 - C414 - 95.03
#define ADDR_OF_PUBV_05                    (unsigned short)(BASE_PUBV+BASE_PUBV_OFFSET*4)        // 第5公共假日日期及日时段表号  - 3字节 - C415 - 95.04
#define ADDR_OF_PUBV_06                    (unsigned short)(BASE_PUBV+BASE_PUBV_OFFSET*5)        // 第6公共假日日期及日时段表号  - 3字节 - C416 - 95.05
#define ADDR_OF_PUBV_07                    (unsigned short)(BASE_PUBV+BASE_PUBV_OFFSET*6)        // 第7公共假日日期及日时段表号  - 3字节 - C417 - 95.06
#define ADDR_OF_PUBV_08                    (unsigned short)(BASE_PUBV+BASE_PUBV_OFFSET*7)        // 第8公共假日日期及日时段表号  - 3字节 - C418 - 95.07
#define ADDR_OF_PUBV_09                    (unsigned short)(BASE_PUBV+BASE_PUBV_OFFSET*8)        // 第9公共假日日期及日时段表号  - 3字节 - C419 - 95.08
#define ADDR_OF_PUBV_10                    (unsigned short)(BASE_PUBV+BASE_PUBV_OFFSET*9)        // 第10公共假日日期及日时段表号 - 3字节 - C41A - 95.09
#define ADDR_OF_PUBV_11                    (unsigned short)(BASE_PUBV+BASE_PUBV_OFFSET*10)       // 第11公共假日日期及日时段表号 - 3字节 - C41B - 95.10
#define ADDR_OF_PUBV_12                    (unsigned short)(BASE_PUBV+BASE_PUBV_OFFSET*11)       // 第12公共假日日期及日时段表号 - 3字节 - C41C - 95.11

#define ADDR_OF_SPRING_FEST                (unsigned short)(BASE_PUBV+BASE_PUBV_OFFSET*12)       // 春节三天采用日时段表号      - 1字节 - C41D - 95.20
#define ADDR_OF_WEEKEND                    (unsigned short)(ADDR_OF_SPRING_FEST+1)               // 周休日采用的日时段表号      - 1字节 - C41E - 95.21

/* 公共假日存储格式定义 */
#define PUBV_OFFSET_MONTH                  2                                     // 时区信息(月)                - 1字节
#define PUBV_OFFSET_DAY                    1                                     // 时区信息(日)                - 1字节
#define PUBV_OFFSET_POTNUM                 0                                     // 时区信息(日时段表号)         - 1字节

/* 日时段表定义(HHmmNN) */
#define BASE_POT_T                         (unsigned short)(ADDR_OF_WEEKEND+1)
#define BASE_POT_T_OFFSET                  36

#define ADDR_OF_POT_TABLE_01               (unsigned short)(BASE_POT_T+BASE_POT_T_OFFSET*0)      // 第1日时段表存储地址   - 36字节 - C33X - 90.XX
#define ADDR_OF_POT_TABLE_02               (unsigned short)(BASE_POT_T+BASE_POT_T_OFFSET*1)      // 第2日时段表存储地址   - 36字节 - C34X - 91.XX
#define ADDR_OF_POT_TABLE_03               (unsigned short)(BASE_POT_T+BASE_POT_T_OFFSET*2)      // 第3日时段表存储地址   - 36字节 - C35X - 92.XX
#define ADDR_OF_POT_TABLE_04               (unsigned short)(BASE_POT_T+BASE_POT_T_OFFSET*3)      // 第4日时段表存储地址   - 36字节 - C36X - 93.XX
#define ADDR_OF_POT_TABLE_05               (unsigned short)(BASE_POT_T+BASE_POT_T_OFFSET*4)      // 第5日时段表存储地址   - 36字节 - C37X - 94.XX
#define ADDR_OF_POT_TABLE_06               (unsigned short)(BASE_POT_T+BASE_POT_T_OFFSET*5)      // 第6日时段表存储地址   - 36字节 - C38X - 9.XX
#define ADDR_OF_POT_TABLE_07               (unsigned short)(BASE_POT_T+BASE_POT_T_OFFSET*6)      // 第7日时段表存储地址   - 36字节 - C39X - 9.XX
#define ADDR_OF_POT_TABLE_08               (unsigned short)(BASE_POT_T+BASE_POT_T_OFFSET*7)      // 第8日时段表存储地址   - 36字节 - C33X - 90.XX
#define ADDR_OF_POT_TABLE_09               (unsigned short)(BASE_POT_T+BASE_POT_T_OFFSET*8)      // 第9日时段表存储地址   - 36字节 - C33X - 90.XX
#define ADDR_OF_POT_TABLE_10               (unsigned short)(BASE_POT_T+BASE_POT_T_OFFSET*9)      // 第10日时段表存储地址  - 36字节 - C33X - 90.XX
#define ADDR_OF_POT_TABLE_11               (unsigned short)(BASE_POT_T+BASE_POT_T_OFFSET*10)     // 第11日时段表存储地址  - 36字节 - C33X - 90.XX
#define ADDR_OF_POT_TABLE_12               (unsigned short)(BASE_POT_T+BASE_POT_T_OFFSET*11)     // 第12日时段表存储地址  - 36字节 - C33X - 90.XX

/* 时段定义(HHmmNN) */
#define BASE_POT                           0
#define BASE_POT_OFFSET                    3

#define ADDR_OF_POT_01                     (unsigned short)(BASE_POT+BASE_POT_OFFSET*0)          // 第1日时段起始时间及费率  - 3字节
#define ADDR_OF_POT_02                     (unsigned short)(BASE_POT+BASE_POT_OFFSET*1)          // 第2日时段起始时间及费率  - 3字节
#define ADDR_OF_POT_03                     (unsigned short)(BASE_POT+BASE_POT_OFFSET*2)          // 第3日时段起始时间及费率  - 3字节
#define ADDR_OF_POT_04                     (unsigned short)(BASE_POT+BASE_POT_OFFSET*3)          // 第4日时段起始时间及费率  - 3字节
#define ADDR_OF_POT_05                     (unsigned short)(BASE_POT+BASE_POT_OFFSET*4)          // 第5日时段起始时间及费率  - 3字节
#define ADDR_OF_POT_06                     (unsigned short)(BASE_POT+BASE_POT_OFFSET*5)          // 第6日时段起始时间及费率  - 3字节
#define ADDR_OF_POT_07                     (unsigned short)(BASE_POT+BASE_POT_OFFSET*6)          // 第7日时段起始时间及费率  - 3字节
#define ADDR_OF_POT_08                     (unsigned short)(BASE_POT+BASE_POT_OFFSET*7)          // 第8日时段起始时间及费率  - 3字节
#define ADDR_OF_POT_09                     (unsigned short)(BASE_POT+BASE_POT_OFFSET*8)          // 第9日时段起始时间及费率  - 3字节
#define ADDR_OF_POT_10                     (unsigned short)(BASE_POT+BASE_POT_OFFSET*9)          // 第10日时段起始时间及费率 - 3字节
#define ADDR_OF_POT_11                     (unsigned short)(BASE_POT+BASE_POT_OFFSET*10)         // 第11日时段起始时间及费率 - 3字节
#define ADDR_OF_POT_12                     (unsigned short)(BASE_POT+BASE_POT_OFFSET*11)         // 第12日时段起始时间及费率 - 3字节
#endif
/* 电能起始读数 */
#define ADDR_OF_STA_RDDATA_AP_S               (unsigned short)(ADDR_OF_DATE+BASE_TIME_OFFSET)//(unsigned short)(BASE_POT_T+BASE_POT_T_OFFSET*12)            // 正向有功总电能起始读数(kWh) - 4字节 - C119 - 83.08
#define ADDR_OF_STA_RDDATA_AP_F1               (unsigned short)(ADDR_OF_STA_RDDATA_AP_S+4)            // 正向有功费率1电能起始读数(kWh) - 4字节 - C119 - 
#define ADDR_OF_STA_RDDATA_AP_F2               (unsigned short)(ADDR_OF_STA_RDDATA_AP_F1+4)            // 正向有功费率2电能起始读数(kWh) - 4字节 - C119 - 
#define ADDR_OF_STA_RDDATA_AP_F3               (unsigned short)(ADDR_OF_STA_RDDATA_AP_F2+4)            // 正向有功费率3电能起始读数(kWh) - 4字节 - C119 - 
#define ADDR_OF_STA_RDDATA_AP_F4               (unsigned short)(ADDR_OF_STA_RDDATA_AP_F3+4)            // 正向有功费率4电能起始读数(kWh) - 4字节 - C119 - 

#define ADDR_OF_STA_RDDATA_AN_S               (unsigned short)(ADDR_OF_STA_RDDATA_AP_F4+4)            // 反向有功总电能起始读数(kWh) - 4字节 - C119 - 83.08
#define ADDR_OF_STA_RDDATA_AN_F1               (unsigned short)(ADDR_OF_STA_RDDATA_AN_S+4)            // 反向有功费率1电能起始读数(kWh) - 4字节 - C119 - 
#define ADDR_OF_STA_RDDATA_AN_F2               (unsigned short)(ADDR_OF_STA_RDDATA_AN_F1+4)            // 反向有功费率2电能起始读数(kWh) - 4字节 - C119 - 
#define ADDR_OF_STA_RDDATA_AN_F3               (unsigned short)(ADDR_OF_STA_RDDATA_AN_F2+4)            // 反向有功费率3电能起始读数(kWh) - 4字节 - C119 - 
#define ADDR_OF_STA_RDDATA_AN_F4               (unsigned short)(ADDR_OF_STA_RDDATA_AN_F3+4)            // 反向有功费率4电能起始读数(kWh) - 4字节 - C119 - 

#define ADDR_OF_STA_RDDATA_RAP_S               (unsigned short)(ADDR_OF_STA_RDDATA_AN_F4+4)            // 正向无功总电能起始读数(kWh) - 4字节 - C119 - 83.08
#define ADDR_OF_STA_RDDATA_RAP_F1               (unsigned short)(ADDR_OF_STA_RDDATA_RAP_S+4)            // 正向无功费率1电能起始读数(kWh) - 4字节 - C119 - 
#define ADDR_OF_STA_RDDATA_RAP_F2               (unsigned short)(ADDR_OF_STA_RDDATA_RAP_F1+4)            // 正向无功费率2电能起始读数(kWh) - 4字节 - C119 - 
#define ADDR_OF_STA_RDDATA_RAP_F3               (unsigned short)(ADDR_OF_STA_RDDATA_RAP_F2+4)            // 正向无功费率3电能起始读数(kWh) - 4字节 - C119 - 
#define ADDR_OF_STA_RDDATA_RAP_F4               (unsigned short)(ADDR_OF_STA_RDDATA_RAP_F3+4)            // 正向无功费率4电能起始读数(kWh) - 4字节 - C119 - 

#define ADDR_OF_STA_RDDATA_RAN_S               (unsigned short)(ADDR_OF_STA_RDDATA_RAP_F4+4)            // 反向无功总电能起始读数(kWh) - 4字节 - C119 - 83.08
#define ADDR_OF_STA_RDDATA_RAN_F1               (unsigned short)(ADDR_OF_STA_RDDATA_RAN_S+4)            // 反向无功费率1电能起始读数(kWh) - 4字节 - C119 - 
#define ADDR_OF_STA_RDDATA_RAN_F2               (unsigned short)(ADDR_OF_STA_RDDATA_RAN_F1+4)            // 反向无功费率2电能起始读数(kWh) - 4字节 - C119 - 
#define ADDR_OF_STA_RDDATA_RAN_F3               (unsigned short)(ADDR_OF_STA_RDDATA_RAN_F2+4)            // 反向无功费率3电能起始读数(kWh) - 4字节 - C119 - 
#define ADDR_OF_STA_RDDATA_RAN_F4               (unsigned short)(ADDR_OF_STA_RDDATA_RAN_F3+4)            // 反向无功费率4电能起始读数(kWh) - 4字节 - C119 - 

/* ADE存储地址 250 */
#define ADDR_OF_ADE_BASE                            (unsigned short)(ADDR_OF_STA_RDDATA_RAN_F4+4)
/* ADE 校表数据存储地址 */
#define ADDR_OF_PHCAL_VAL                           (unsigned short)(ADDR_OF_ADE_BASE)
#define ADDR_OF_GAIN_VAL                            (unsigned short)(ADDR_OF_PHCAL_VAL+2)                               //0x3c//it contains 1+1 Ctrl byte (Low Importance)
#define ADDR_OF_IBGAIN_VAL                          (unsigned short)(ADDR_OF_GAIN_VAL+2)                                //0x3e//it contains 2+1 Ctrl byte (Low Importance)
#define ADDR_OF_WGAIN_VAL                           (unsigned short)(ADDR_OF_IBGAIN_VAL+3)                              //WGAIN_val[0]=LSB, WGAIN_val[1]=MSB//0x41//it contains 2+1 Ctrl byte (Low Importance)
#define ADDR_OF_VARGAIN_VAL                         (unsigned short)(ADDR_OF_WGAIN_VAL+3)                               //it contains 2+1 Ctrl byte //0x44
#define ADDR_OF_VAGAIN_VAL                          (unsigned short)(ADDR_OF_VARGAIN_VAL+3)                             //it contains 2+1 Ctrl byte //0x47
#define ADDR_OF_WATTOS_VAL                          (unsigned short)(ADDR_OF_VAGAIN_VAL+3)                              //it contains 2+1 Ctrl byte //0x4a
#define ADDR_OF_VAROS_VAL                           (unsigned short)(ADDR_OF_WATTOS_VAL+3)                              //it contains 2+1 Ctrl byte //0x4d
#define ADDR_OF_IRMSOS_VAL                          (unsigned short)(ADDR_OF_VAROS_VAL+3)                               //0x50
#define ADDR_OF_VRMSOS_VAL                          (unsigned short)(ADDR_OF_IRMSOS_VAL+3)                              //it contains 2+1 Ctrl byte //0x53
#define ADDR_OF_CF1DEN_VAL                          (unsigned short)(ADDR_OF_VRMSOS_VAL+3)                              //it contains 2+1 Ctrl byte //0x56
#define ADDR_OF_CF2DEN_VAL                          (unsigned short)(ADDR_OF_CF1DEN_VAL+3)                              //it contains 2+1 Ctrl byte //0x59
#define ADDR_OF_RTCCOMP_VAL                         (unsigned short)(ADDR_OF_CF2DEN_VAL+3)                              //it contains 1+1 Ctrl byte //0x5c
#define ADDR_OF_TEMPCAL_VAL                         (unsigned short)(ADDR_OF_RTCCOMP_VAL+2)                             //it contains 1+1 Ctrl byte //0x5e
#define ADDR_OF_I_1A_threshold_VAL                  (unsigned short)(ADDR_OF_TEMPCAL_VAL+2)                             //it contains 2+1 Ctrl byte //0x60
#define ADDR_OF_V_1V_threshold_VAL                  (unsigned short)(ADDR_OF_I_1A_threshold_VAL+3)                      //it contains 2+1 Ctrl byte //0x63


#ifndef __IAR_SYSTEMS_ICC__
extern void InitI2C(void);
extern void ee_write_byte(unsigned short addr,unsigned char idata*dat);
extern unsigned char ee_write_bytes(unsigned short addr,unsigned char idata*dat,unsigned char len);
extern void ee_read_byte(void);
extern unsigned char ee_read_bytes(unsigned short addr,unsigned char idata*dat,unsigned char len);
#else
extern unsigned char ErrIndication;
extern unsigned char I2CTemp0;
extern unsigned short I2CTemp1;
extern void InitI2C(void);
extern unsigned char ee_read_bytes(unsigned short addr, unsigned char idata*dat, unsigned char len);
extern unsigned char ee_write_bytes(unsigned short addr,unsigned char idata*dat,unsigned char len);
#endif

#endif /* STORAGE_H */


⌨️ 快捷键说明

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