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

📄 ade7758.txt

📁 ade7758的读写程序。包括读写程序及初始化寄存器部分。
💻 TXT
📖 第 1 页 / 共 2 页
字号:
        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 + -