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

📄 ade7758.txt

📁 ade7758的读写程序。包括读写程序及初始化寄存器部分。
💻 TXT
📖 第 1 页 / 共 2 页
字号:
#define     MANIP7758_GLOBALS    
#include    "includes.h"    
   
const uchar GACHC_58addr_num[]={1,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,   
                                 2,1,3,1,1,1,1,1,3,3,3,2,2,1,1,1,   
                                 1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,   
                                 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,   
                                 1,1,1,1,1,2,2,2,2   
                                };   
   
/****************************************************************/   
/*                          Read a byte from 7758                                                 */   
/*description: get byte for 7758 output                                                       */   
/*                            */   
/*                                                                                                            */   
/*input parameters:  none                                      */   
/*                                                                                                       */   
/*output argument:    return the obtaned byte which type is uchar*/   
/*relative globe variables or functons:  none                                                              */   
/***************************************************************/   
   
uchar read_1byte7758(void)   
{   
    union UN_DEF LUB_data;   
    uchar i;   
    LUB_data.BYTE=0;nop();   
    for(i=0;i!=8;i++)   
        {   
        P_7758CLK_HIGH;   
        //us_delay(1);    
        us_delay(2);   
        P_7758CLK_LOW;   
        LUB_data.BIT.b0=P_7758DOUT;   
        if(i==7)   
            {   
            LUB_data.BYTE=~LUB_data.BYTE;/*invert the obtain bit*/   
            return LUB_data.BYTE;   
            }   
        LUB_data.BYTE<<=1;   
        //us_delay(1);    
        us_delay(2);   
        }   
}   
   
/****************************************************************/   
/*                              write a byte to 7758                                                  */   
/*description:    this  function write one byte to the 7758                               */   
/*                            */   
/*                                                                                                            */   
/*input parameters:  PB_data:the data ready to be write                               */   
/*                                                                                                       */   
/*output argument: none                                                                        */   
/*relative globe variables or functons:none                                                  */   
/***************************************************************/   
void write_1byte7758(uchar PB_data)   
{   
    uchar i;   
    union UN_DEF LUB_data;   
    LUB_data.BYTE=~PB_data;/*invert the certain bit before output*/   
    for(i=0;i!=8;i++)   
        {   
        P_7758DIN=LUB_data.BIT.b7;         
        P_7758CLK_HIGH;        
        LUB_data.BYTE<<=1;   
        //us_delay(1);    
        us_delay(2);   
        P_7758CLK_LOW;   
        //us_delay(1);    
        us_delay(2);   
        nop();   
        }   
}   
/****************************************************************/   
/*                              write a command  to 7758                                                  */   
/*description:    this fuction  send a certain   command to the 7758             */   
/*                            */   
/*                                                                                                            */   
/*input parameters:  PB_addr: the command address                               */   
/*                            PB_byte_nums: the numbers of the given command    */   
/*                 PP_data_point:  a pointer which is point to the first byte*/   
/*output argument: none                                                                        */   
/*relative globe variables or functions :none                                                                */   
/***************************************************************/   
   
void Data_wr7758(uchar PB_addr ,uchar *PP_data_point)   
{   
    uchar i,LB_byte_nums;   
       
    ready_7758com();us_delay(2);   
    if((PB_addr==0x7e)||(PB_addr==0x7f))LB_byte_nums=1;   
    else LB_byte_nums=GACHC_58addr_num[PB_addr];   
    P_7758NCS_active;   
    us_delay(50);   
    //us_delay(150);    
    PB_addr|=0x80;   
    write_1byte7758(PB_addr);/*send the command address*/   
    LB_byte_nums&=0x03;   
    for(i=0;i!=LB_byte_nums;i++)   
        {   
        write_1byte7758(*(PP_data_point+i));   
        }   
    P_7758NCS_inactive;   
    us_delay(50);   
    //us_delay(150);    
    sleep_7758com();   
}   
   
/****************************************************************/   
/*                              read a data  from 7758                                                  */   
/*description:    this fuction  send a certain   command to the 7758             */   
/*                            */   
/*                                                                                                            */   
/*input parameters:  PB_addr: the command address                               */   
/*                            PB_byte_nums: the numbers of the obtained data    */   
/*                                                                   */   
/*output argument: GA_buf_rdwr7758 saving the obtained data                    */   
/*relative globe variables or functions :GA_buf_rdwr7758,  read_1byte7758      */   
/*read_1byte7758                */   
/***************************************************************/   
void Data_rd7758(uchar PB_addr)   
{   
    uchar i,LB_byte_nums;   
    ready_7758com();us_delay(2);   
    if((PB_addr==0x7e)||(PB_addr==0x7f))LB_byte_nums=1;   
    else LB_byte_nums=GACHC_58addr_num[PB_addr];   
    P_7758NCS_active;   
    us_delay(50);   
    //us_delay(150);    
    nop();/*debug*/   
    write_1byte7758(PB_addr);   
    for(i=0;i!=LB_byte_nums;i++)   
        {   
        GA_buf_rdwr7758[i]=read_1byte7758();   
        }   
    P_7758NCS_inactive;   
    sleep_7758com();   
    us_delay(50);   
    //us_delay(150);    
    sleep_7758com();   
    nop();/*debug*/   
}   
/****************************************************************/   
/*                              Initialize the 7758                                                  */   
/*description: this fuction  initialize the relatived ports of 7758             */   
/*                                                                                      */   
/*                                                                                                            */   
/*input parameters: none                        */   
/*                                                                              */   
/*                                                                   */   
/*output argument: none                    */   
/*relative globe variables or functions :none                                               */   
/***************************************************************/   
void ini_7758(void)   
{   
    uint LW_data;   
    SET_OUTPUT_7758NCS;P_7758NCS_inactive;   
    SET_OUTPUT_7758CLK;P_7758CLK_LOW;   
    SET_OUTPUT_7758DIN;   
    SET_INPUT_7758DOUT;   
    SET_INT_MODE7758IQR;   
   
    us_delay(10);   
    GA_buf_rdwr7758[0]=0x40;   
    Data_wr7758(Addr_OPMODE,  GA_buf_rdwr7758);   
    us_delay(30);   
       
    Read_EeprData(GST_58para.U_apcf.ACH_apcf,2,APCFDEN_EeAddr);   
    if(GST_58para.U_apcf.APCFDEN>0x0fff)   
        {   
        GST_58para.U_apcf.APCFDEN=0x0fff;   
        }      
    Data_wr7758(Addr_APCFDEN, GST_58para.U_apcf.ACH_apcf);   
       
       
    Read_EeprData(GST_58para.U_varcp.ACH_varcp,2,VARCFDEN_EeAddr);   
    if(GST_58para.U_varcp.VARCFDEN> 0x0fff )   
        {   
        GST_58para.U_varcp.VARCFDEN=0x0fff;   
        }   
    Data_wr7758(Addr_VARCFDEN, GST_58para.U_varcp.ACH_varcp);   
       
          
    Read_EeprData(GST_58para.U_awg.ACH_awg,2,AWG_EeAddr);   
    if(GST_58para.U_awg.AWG> 0x0fff )   
        {   
        GST_58para.U_awg.AWG=0x0f35;   
        }      
    Data_wr7758(Addr_AWG, GST_58para.U_awg.ACH_awg);   
       
          
    Read_EeprData(GST_58para.U_bwg.ACH_bwg,2,BWG_EeAddr);   
       if(GST_58para.U_bwg.BWG> 0x0fff)   
        {   
        GST_58para.U_bwg.BWG=0x0f35;   
        }   
    Data_wr7758(Addr_BWG, GST_58para.U_bwg.ACH_bwg);   
       
    Read_EeprData(GST_58para.U_cwg.ACH_cwg,2,CWG_EeAddr);   
    if(GST_58para.U_cwg.CWG>0x0fff )   
        {   
        GST_58para.U_cwg.CWG=0x0f35;   
        }   
    Data_wr7758(Addr_CWG, GST_58para.U_cwg.ACH_cwg);   
       
    Read_EeprData(GST_58para.U_avarg.ACH_avarg,2,AVARG_EeAddr);   
    if(GST_58para.U_avarg.AVARG>0x0fff)   
        {   
        GST_58para.U_avarg.AVARG=0x0f35;   
        }   
    Data_wr7758(Addr_AVARG, GST_58para.U_avarg.ACH_avarg);   
   
    Read_EeprData(GST_58para.U_bvarg.ACH_bvarg,2,BVARG_EeAddr);   
    if(GST_58para.U_bvarg.BVARG> 0x0fff)   
        {   
        GST_58para.U_bvarg.BVARG=0x0f35;   
        }   
    Data_wr7758(Addr_BVARG, GST_58para.U_bvarg.ACH_bvarg);   
   
    Read_EeprData(GST_58para.U_cvarg.ACH_cvarg,2,CVARG_EeAddr);   
    if(GST_58para.U_cvarg.CVARG>0x0fff)   
        {   

⌨️ 快捷键说明

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