123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- #ifndef __HLW8110_H
- #define __HLW8110_H
- #include "sys.h"
- #include "core_cm3.h"
- #include "stdio.h"
- #include "iap.h"
- //8112/8110 reg define
- #define REG_SYSCON_ADDR 0x00
- #define REG_EMUCON_ADDR 0x01
- #define REG_HFCONST_ADDR 0x02
- #define REG_EMUCON2_ADDR 0x13
- #define REG_ANGLE_ADDR 0x22 //相角寄存器
- #define REG_UFREQ_ADDR 0x23 //市电线性频率地址
- #define REG_RMSIA_ADDR 0x24
- #define REG_RMSIB_ADDR 0x25
- #define REG_RMSU_ADDR 0x26
- #define REG_PF_ADDR 0x27
- #define REG_ENERGY_PA_ADDR 0x28
- #define REG_ENERGY_PB_ADDR 0x29
- #define REG_POWER_PA_ADDR 0x2C
- #define REG_POWER_PB_ADDR 0x2D
- #define REG_POWER_PS_ADDR 0x2E
- #define REG_SAGCYC_ADDR 0x17
- #define REG_SAGLVL_ADDR 0x18
- #define REG_OVLVL_ADDR 0x19
- #define REG_OIALVL_ADDR 0x1a
- #define REG_INT_ADDR 0x1D
- #define REG_IE_ADDR 0x40
- #define REG_IF_ADDR 0x41
- #define REG_RIF_ADDR 0x42
- #define REG_RDATA_ADDR 0x44
- #define REG_CHECKSUM_ADDR 0x6f
- #define REG_RMS_IAC_ADDR 0x70
- #define REG_RMS_IBC_ADDR 0x71
- #define REG_RMS_UC_ADDR 0x72
- #define REG_POWER_PAC_ADDR 0x73
- #define REG_POWER_PBC_ADDR 0x74
- #define REG_POWER_SC_ADDR 0x75
- #define REG_ENERGY_AC_ADDR 0x76
- #define REG_ENERGY_BC_ADDR 0x77
- //宏定义
- #define FALSE 0
- #define TRUE 0
- #define D_TIME1_50MS 50
- void Init_HLW8110(unsigned char nun);
- void Calculate_HLW8110_MeterData(unsigned char nun);
- void Init_HLW8112(void);
- void HLW8112_Measure(void);
- void Read_Power_Data_handle(void);
-
- extern unsigned char HLW8110Msg; //程序状态机
- enum HLW8110_TASK
- {
- HLW8110_int = 0,
- HLW8110_1,//第一路
- HLW8110_2, //第二路
- HLW8110_3, //第三路
- HLW8110_IDEL,//空闲任务
- HLW8110_ERR
- };
- typedef struct hlw8110_power
- {
- float F_AC_V[3];
- float F_AC_I[3];
- float F_AC_P[3];
- float F_AC_E[3];
- }hlw8110_power_t;
- extern hlw8110_power_t hlw8110_power_data;
- extern long int SystemTimer;
- extern unsigned char power_data[50];
- extern unsigned char u8_TxBuf[10];
- extern unsigned char u8_RxBuf[10];
- extern unsigned char u8_TX_Length;
- extern unsigned char u8_RX_Length;
- extern unsigned char u8_RX_Index;
- //unsigned char B_ReadReg_Time_EN; // 串口读取寄存器数据,时间计数器标志位,1--开启计数,0--关闭计数
- //unsigned char B_Tx_Finish;
- extern unsigned char B_Rx_Finish;
- extern unsigned char B_Rx_Data_ING; // 接收数据标志位 , < 1:接收数据中,0:未接收到数据 >
- extern unsigned char B_Read_Error;
- #endif
|