📄 main.h
字号:
typedef unsigned char uint24[3];
struct EEPROM_DATA
{
unsigned int EMU_Status_EMUSR; //1 EMU 状态标志寄存器
unsigned int Active_Power_Gain_GP1; //2 通道1 的有
unsigned int Reactive_Power_Gain_GQ1; //2 通道1 的无
unsigned int Apparent_Power_Gain_GS1; //2 通道1 的视
unsigned int Phase_Calibration_GPhs1; // 2 通道1 的相位校正
unsigned int Active_Power_Gain_GP2; //2 通道2 的有
unsigned int Reactive_Power_Gain_GQ2; //2 通道2 的无
unsigned int Apparent_Power_Gain_GS2; //2 通道2 的视
unsigned int Phase_Calibration_GPhs2; //2 通道2 的相位校正
unsigned int Reactive_Power_Phase_QPhsCal; //1 无功相位补偿
unsigned int Current_2Gain_I2Gain; //2 电流通道2 增益补偿
unsigned int Current_Offset_I1Off; //2 电流通道1
unsigned int Current_Offset_I2Off; //2 电流通道2
unsigned int Voltage_Offset_UOff; //2 电压通道的偏置校正
unsigned int Start_Threshold_Setup_PQStart; //2 起动功率设置
unsigned int High_Frequency_Const_HFConst; //2 输出脉冲频率设置
unsigned int Check_Current_Rms_ICHK; //1 窃电阈值设置
unsigned int ADC_Config_ADCCFG; //1 ADC 控制寄存器
unsigned int Current_Channel_Control_CHNLCR; //1 通道控制信号
unsigned int Energy_Measure_Control_EMCON; //1 能量计量控制寄存器
unsigned int Auto_Offset_Calibration_AutoDC; //1 自动偏置校正
unsigned int Active_Energy_Counter_PFCnt; //2 快速有功脉冲计数
unsigned int Reactive_Energy_Counter_QFCnt; //2 快速无功脉冲计数
unsigned int Apparent_Energy_Counter_SFCnt; //2 快速视在脉冲计数
unsigned int ADC_Channel_Gain_ADCCON; //1 ADC 通道增益选择
unsigned int Tamper_Current_TAMP; //2 窃电检测电流域值
unsigned int Channel_Digital_Gain_DGAIN; //1 通道数字增益
unsigned int EMU_Krms_Rms[3];
unsigned int EMU_Krms_Kpqs[3];
unsigned int EMU_Temp_Tr;
};
struct Emu_Parameter{
unsigned long Current_Waveform_Spl_I1;
unsigned long Current_Waveform_Spl_I2;
unsigned long Voltage_Waveform_Spl_U;
unsigned long Active_Power_Waveform_Spl_P;
unsigned long Reactive_Power_Waveform_Spl_Q;
unsigned long Apparent_Power_Waveform_Spl_S ;
unsigned long Current_Rms_I1;
unsigned long Current_Rms_I2;
unsigned long Current_Rms_U;
unsigned long Current_Freq_U;
unsigned long Active_Power_P;
unsigned long Reactive_Power_Q;
unsigned long Apparent_Power_S;
unsigned long Active_Energy_P;
unsigned long Reactive_Energy;
unsigned long Apparent_Energy_S;
};
typedef struct Emu_Parameter_change{
unsigned long Current_Waveform_Spl_I1;
unsigned long Current_Waveform_Spl_I2;
unsigned long Voltage_Waveform_Spl_U;
unsigned long Active_Power_Waveform_Spl_P;
unsigned long Reactive_Power_Waveform_Spl_Q;
unsigned long Apparent_Power_Waveform_Spl_S ;
unsigned long Current_Rms_I1;
unsigned long Current_Rms_I2;
unsigned long Current_Rms_U;
unsigned long Current_Freq_U;
unsigned long Active_Power_P;
unsigned long Reactive_Power_Q;
unsigned long Apparent_Power_S;
unsigned long Active_Energy_P;
unsigned long Reactive_Energy;
unsigned long Apparent_Energy_S;
int EMU_Temp_Tr;
unsigned int EMU_Krms_Rms[3];//电压电流额定输入时额定值与相应寄存器的比值
unsigned int EMU_Krms_Kpqs[3]; //显示时的系数与有功功率的系数额定比值
unsigned int EMU_Temp_Toff;//温度偏置Toff
int gi_temper;//当前温度,上电默认25度 每10s内产生的clock数与标准32768hz 10s 内的clock数
}; //_at_ 0x0032;
typedef struct real_energy
{
unsigned long CurrentPositiveActiveAccumTariff;
unsigned long CurrentNegativeActiveAccumTariff;
unsigned long CurrentQuadrant1AccumTariff;
unsigned long CurrentQuadrant2AccumTariff;
unsigned long CurrentQuadrant3AccumTariff;
unsigned long CurrentQuadrant4AccumTariff;
unsigned char pulse;
unsigned char relay_flag;
unsigned char moto_flag[4];
unsigned char cs;
};//_at_ 0x0c;
typedef struct meter_para
{
unsigned char factory_No[6];
unsigned char meter_number[6];
unsigned char prg_password[4];
unsigned char MeterConstantReal[3];
unsigned char MeterConstantReactive[3];
unsigned char iniflag;
};
//data unsigned char aa[50];
/*data struct
{ unsigned char second;
unsigned char minute;
unsigned char hour;
unsigned char week;
unsigned char day;
unsigned char month;
unsigned char year;
}time _at_ 0x8056;*/
extern xdata struct Emu_Parameter Emu_Parameter;
extern xdata struct Emu_Parameter_change Emu_Parameter_change;
extern xdata struct real_energy real_energy;
extern xdata struct meter_para meter_para;
extern xdata unsigned char g_CommBuffer[50];
//extern xdata struct MESSAGE_BOARD g_MessageBoard;
extern void Flash_Write_ATT7027(unsigned int addr,unsigned char *mt_data,unsigned char n);
extern void Flash_Read_ATT7027(unsigned int addr,unsigned char *mt_data,unsigned char n);
extern void WriteCALATT7027(unsigned char addr,unsigned char *mt_data,unsigned char n);
extern void ReadATT7027(unsigned char addr,unsigned char *mt_data,unsigned char n);
extern void ReadCALATT7027(unsigned char addr,unsigned char *mt_data,unsigned char n);
extern void EMU_Parameter_change1();
extern void init_ATT7027(void);
extern void init_RTC(void);
extern void init_time(void);
extern void RTC_CAL_TEMP(void);
extern void LcdDrvInit(void);
extern void L_default(void);
extern void restoredata(void);
extern void load_Flash_write(void);
extern unsigned char judg_Flash_init(void);
extern unsigned char check_sum(unsigned char *p,unsigned char length);
extern void UpdateLCD(unsigned long x);
extern unsigned long BCDAdd(unsigned long x, unsigned long y);
extern unsigned long bin2bcd(unsigned long x);
extern unsigned char DisplayManager();
extern void DisplayEEInit(void);
extern void DisplayCal(void);
extern void CLRALL_LCD_BUF(void);
typedef struct EEPROM_DATA EEPROM_DATA;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -