📄 ade7758.txt
字号:
GST_58para.U_cvarg.CVARG=0x0f35;
}
Data_wr7758(Addr_CVARG, GST_58para.U_cvarg.ACH_cvarg);
GST_58para.U_opm.OPMODE=0;
Data_wr7758(Addr_OPMODE, GST_58para.U_opm.ACH_opm);
Read_EeprData(GST_58para.U_wdiv.ACH_wdiv,1,WDIV_EeAddr);
//GST_58para.U_wdiv.WDIV=10;
Data_wr7758(Addr_WDIV, GST_58para.U_wdiv.ACH_wdiv);
Read_EeprData(GST_58para.U_vardiv.ACH_vardiv,1,VARDIV_EeAddr);
//GST_58para.U_vardiv.VARDIV=10;
Data_wr7758(Addr_VARDIV, GST_58para.U_vardiv.ACH_vardiv);
Read_EeprData( GST_58para.U_aphcal.ACH_aphcal, 1, APHCAL_EeAddr);
if(GST_58para.U_aphcal.APHCAL>0x3f)
{
GST_58para.U_aphcal.APHCAL=0;
}
Data_wr7758(Addr_APHCAL, GST_58para.U_aphcal.ACH_aphcal);
Read_EeprData( GST_58para.U_bphcal.ACH_bphcal, 1, BPHCAL_EeAddr);
if(GST_58para.U_bphcal.BPHCAL>0x3f)
{
GST_58para.U_bphcal.BPHCAL=0;
}
Data_wr7758(Addr_BPHCAL, GST_58para.U_bphcal.ACH_bphcal);
Read_EeprData( GST_58para.U_cphcal.ACH_cphcal, 1, CPHCAL_EeAddr);
if(GST_58para.U_cphcal.CPHCAL>0x3f)
{
GST_58para.U_cphcal.CPHCAL=0;
}
Data_wr7758(Addr_CPHCAL, GST_58para.U_cphcal.ACH_cphcal);
Read_EeprData( GST_58para.U_awattos.ACH_awattos, 2,AWATTOS_EeAddr);
if(GST_58para.U_awattos.AWATTOS>0x0fff)
{
GST_58para.U_awattos.AWATTOS=0;
}
Data_wr7758(Addr_AWATTOS,GST_58para.U_awattos.ACH_awattos);
Read_EeprData(GST_58para.U_bwattos.ACH_bwattos, 2,BWATTOS_EeAddr);
if(GST_58para.U_bwattos.BWATTOS>0x0fff)
{
GST_58para.U_bwattos.BWATTOS=0;
}
Data_wr7758(Addr_BWATTOS,GST_58para.U_bwattos.ACH_bwattos);
Read_EeprData( GST_58para.U_cwattos.ACH_cwattos, 2,CWATTOS_EeAddr);
if(GST_58para.U_cwattos.CWATTOS>0x0fff)
{
GST_58para.U_cwattos.CWATTOS=0;
}
Data_wr7758(Addr_CWATTOS,GST_58para.U_cwattos.ACH_cwattos);
Read_EeprData( GST_58para.U_avaros.ACH_avaros, 2,AVAROS_EeAddr);
if(GST_58para.U_avaros.AVAROS>0x0fff)
{
GST_58para.U_avaros.AVAROS=0;
}
Data_wr7758(Addr_AVAROS,GST_58para.U_avaros.ACH_avaros);
Read_EeprData( GST_58para.U_bvaros.ACH_bvaros, 2,BVAROS_EeAddr);
if(GST_58para.U_bvaros.BVAROS>0x0fff)
{
GST_58para.U_bvaros.BVAROS=0;
}
Data_wr7758(Addr_BVAROS,GST_58para.U_bvaros.ACH_bvaros);
Read_EeprData( GST_58para.U_cvaros.ACH_cvaros, 2,CVAROS_EeAddr);
if(GST_58para.U_cvaros.CVAROS>0x0fff)
{
GST_58para.U_cvaros.CVAROS=0;
}
Data_wr7758(Addr_CVAROS,GST_58para.U_cvaros.ACH_cvaros);
GU_7758scl.Str_58scl.avscale=13;
GU_7758scl.Str_58scl.bvscale=13;
GU_7758scl.Str_58scl.cvscale=13;
GU_7758scl.Str_58scl.aiscale=58;
GU_7758scl.Str_58scl.biscale=58;
GU_7758scl.Str_58scl.ciscale=58;
LW_data=GST_58para.U_apcf.APCFDEN*16;
LW_data/=10;
LW_data*=8;
GU_7758scl.Str_58scl.awscale=LW_data;//0.01 kwr;
GU_7758scl.Str_58scl.bwscale=LW_data;//0.01 kwr;
GU_7758scl.Str_58scl.cwscale=LW_data;//0.01 kwr;
LW_data=GST_58para.U_varcp.VARCFDEN*16;
LW_data/=10;
LW_data*=8;
GU_7758scl.Str_58scl.avarscale=LW_data;
GU_7758scl.Str_58scl.bvarscale=LW_data;
GU_7758scl.Str_58scl.cvarscale=LW_data;
}
/****************************************************************/
/* turn down the opt */
/*description: this fonction is to cut off curren on diode in opt */
/* */
/* */
/*input parameters: none */
/* */
/* */
/*output argument: none */
/*relative globe variables or functions :none */
/***************************************************************/
void sleep_7758com(void)
{
P_7758NCS_inactive;P_7758CLK_HIGH;P_7758DIN_HIGH;
}
/****************************************************************/
/* call the 7758com ready */
/*description: this fonction is to set the port to 7758 ready */
/* */
/* */
/*input parameters: none */
/* */
/* */
/*output argument: none */
/*relative globe variables or functions :none */
/***************************************************************/
void ready_7758com(void)
{
P_7758NCS_inactive;P_7758CLK_LOW;
}
void Read_58data_batch(void)
{
Energy_process(Addr_AWATTHR,&(GST_MeterData.A_WattHr),
&(GST_58data.U_aw.AWATTHR), GU_7758scl.Str_58scl.awscale);
Energy_process(Addr_BWATTHR,&(GST_MeterData.B_WattHr),
&(GST_58data.U_bw.BWATTHR), GU_7758scl.Str_58scl.bwscale);
Energy_process(Addr_CWATTHR,&(GST_MeterData.C_WattHr),
&(GST_58data.U_cw.CWATTHR), GU_7758scl.Str_58scl.cwscale);
Energy_process(Addr_AVARHR,&(GST_MeterData.A_VarHr),
&(GST_58data.U_avar.AVARHR), GU_7758scl.Str_58scl.avarscale);
Energy_process(Addr_BVARHR,&(GST_MeterData.B_VarHr),
&(GST_58data.U_bvar.BVARHR), GU_7758scl.Str_58scl.bvarscale);
Energy_process(Addr_CVARHR,&(GST_MeterData.C_VarHr),
&(GST_58data.U_cvar.CVARHR), GU_7758scl.Str_58scl.cvarscale);
Process_store_v_cr(Addr_AIRMS,GST_58data.U_ai.ACH_ai);
Process_store_v_cr(Addr_BIRMS,GST_58data.U_bi.ACH_bi);
Process_store_v_cr(Addr_CIRMS,GST_58data.U_ci.ACH_ci);
Process_store_v_cr(Addr_AVRMS,GST_58data.U_av.ACH_av);
Process_store_v_cr(Addr_BVRMS,GST_58data.U_bv.ACH_bv);
Process_store_v_cr(Addr_CVRMS,GST_58data.U_cv.ACH_cv);
nop();
}
void Energy_process(uchar PB_Addr,long *PPDW_Energy,
long *PPDW_EnergBuf,uint PW_scal)
{
union
{
int LW_data;
uchar LACH_data[2];
} LU_data;
Data_rd7758(PB_Addr);
LU_data.LACH_data[0] = GA_buf_rdwr7758[0];
LU_data.LACH_data[1] = GA_buf_rdwr7758[1];
(*PPDW_EnergBuf)+=LU_data.LW_data;
if((*PPDW_EnergBuf)>=0)
{
while(*PPDW_EnergBuf>PW_scal)
{
(*PPDW_EnergBuf)-=PW_scal;
(*PPDW_Energy)++;
}
}
else
{
while(*PPDW_EnergBuf<(-PW_scal))
{
(*PPDW_EnergBuf)+=PW_scal;
(*PPDW_Energy)--;
}
}
}
void Process_store_v_cr(uchar PB_addr, uchar *PP_data)
{
uchar LB_data0,LB_data1;
Data_rd7758(PB_addr);
LB_data0=GA_buf_rdwr7758[0];
if(LB_data0<0)
{
*PP_data=0;
*(PP_data+1)=0;
}
else
{
LB_data0=LB_data0<<3;
LB_data1=GA_buf_rdwr7758[1]>>5;
LB_data0|=LB_data1;
*PP_data=LB_data0;
LB_data0=GA_buf_rdwr7758[1]<<3;
LB_data1=GA_buf_rdwr7758[2]>>5;
LB_data0|=LB_data1;
*(PP_data+1)=LB_data0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -