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

📄 i2s.c

📁 优龙YLP270开发板 光盘自带的BIOS和实验例程源码 强烈推荐
💻 C
📖 第 1 页 / 共 2 页
字号:
    PostDisplayProgress(ERR_L_I2SCODEC, ERR_TS_DAC, 5);
  
    i2s_codec.data_len = sizeof(RightLineIN);
    i2s_codec.data=RightLineIN;
    
    if((status= i2c_write(i2c_regs, intReg, &i2s_codec))!= ERR_T_NONE)
    {	
        LOGERRORX(errorLog, 
                 ERR_L_I2SCODEC, ERR_TS_I2C_DACWRITE, RIGHTLINEIN, ERR_T_NOTRANSMIT, 
                 0, 0, 0);
        XllpUtilityOutputError(errorLog);
        return(errorLog);
    }  	

    DM_WaitMs(1);  	
    PostDisplayProgress(ERR_L_I2SCODEC, ERR_TS_DAC, 6);
    
    i2s_codec.data_len = sizeof(AAPathControl);
    i2s_codec.data=AAPathControl;
    
    if((status= i2c_write(i2c_regs, intReg, &i2s_codec))!= ERR_T_NONE)
    {	
        LOGERRORX(errorLog, 
                 ERR_L_I2SCODEC, ERR_TS_I2C_DACWRITE, AAPATHCONTROL, ERR_T_NOTRANSMIT, 
                 0, 0, 0);
        XllpUtilityOutputError(errorLog);
        return(errorLog);
    }  	

    DM_WaitMs(1);  	
    PostDisplayProgress(ERR_L_I2SCODEC, ERR_TS_DAC, 7);
    
    i2s_codec.data_len = sizeof(DAPathControl);
    i2s_codec.data=DAPathControl;
  
    if((status= i2c_write(i2c_regs, intReg, &i2s_codec))!= ERR_T_NONE)
    {	
        LOGERRORX(errorLog, 
                 ERR_L_I2SCODEC, ERR_TS_I2C_DACWRITE, DAPATHCONTROL, ERR_T_NOTRANSMIT, 
                 0, 0, 0);
        XllpUtilityOutputError(errorLog);
        return(errorLog);
    }  	

    DM_WaitMs(1);  	
    PostDisplayProgress(ERR_L_I2SCODEC, ERR_TS_DAC, 8);
 
 //  reactivating the codec for use   
 
    i2s_codec.data_len = sizeof(ActiveControlOn);
    i2s_codec.data=ActiveControlOn;
   
    if((status= i2c_write(i2c_regs, intReg, &i2s_codec))!= ERR_T_NONE)
    {	
        LOGERRORX(errorLog, 
                 ERR_L_I2SCODEC, ERR_TS_I2C_DACWRITE, ACTIVECONTROLON, ERR_T_NOTRANSMIT, 
                 0, 0, 0);
        XllpUtilityOutputError(errorLog);
        return(errorLog);
    }  	
   	
    DM_WaitMs(1);  	
    PostDisplayProgress(ERR_L_I2SCODEC, ERR_TS_DAC, 9);
    return(errorLog);
}

/*
*******************************************************************************
*
* FUNCTION:         I2S_ADCSetup
*
* DESCRIPTION:      putting the codec into analog - to - Digital state  
*
* INPUT PARAMETERS: None
*
* RETURNS:          XLLP_UINT32_T
*
* GLOBAL EFFECTS:   None
*
* ASSUMPTIONS:
*
* CALLS:
*
* CALLED BY:		I2S_Test()
*
* PROTOTYPE:        XLLP_UINT32_T I2S_ADCSetup (void);
*
*******************************************************************************
*/
  	
XLLP_UINT32_T I2S_ADCSetup(void)
{
    INT errorLog=0;	
    INT status=0;
    I2C_TX i2s_codec;
	volatile P_POST_I2C_T i2c_regs = (P_POST_I2C_T)STD_I2C_BASE;
	volatile P_XLLP_INTC_T intReg = (P_XLLP_INTC_T)0x40d00000;
 //  these are standard value recommended by wolfson for DAC 

    XLLP_UINT8_T LeftLineIn[]= {(LeftLineInAddr), (ADC_LeftLineInData)};
    XLLP_UINT8_T RightLineIN[]={(RightLineINAddr), (ADC_RightLineINData)};
    XLLP_UINT8_T AAPathControl[]= {(AAPathControlAddr), (ADC_AAPathControlData)};
    XLLP_UINT8_T DAPathControl[]={(DAPathControlAddr), (ADC_DAPathControlData)};
    XLLP_UINT8_T DAInterfaceFormat[]={(DAInterfaceFormatAddr), (ADC_DAInterfaceFormatData)};
    XLLP_UINT8_T PowerDownControl[]= {(PowerDownControlAddr), (ADC_PowerDownControlData)};
    XLLP_UINT8_T ActiveControlOn[]={(ActiveControlAddr), (ActiveControlOnData)}; 
    XLLP_UINT8_T ActiveControlOff[]={(ActiveControlAddr), (ActiveControlOffData)}; 

// this value (I2SCODEC_ID) is gotten from the codec spec and is how the I2C bus communicates with 
// the codec

    i2s_codec.dev_id = I2SCODEC_ID;

    PostDisplayProgress(ERR_L_I2SCODEC, ERR_TS_ADC, 1);

//  must deactivate the codec before writing to it to ensure no noise occurs when changing
//  the register settings
   
    i2s_codec.data_len = sizeof(ActiveControlOff);
    i2s_codec.data=ActiveControlOff;

    if((status= i2c_write(i2c_regs, intReg, &i2s_codec))!= ERR_T_NONE)
    {	
        LOGERRORX(errorLog, 
                 ERR_L_I2SCODEC, ERR_TS_I2C_ADCWRITE, ACTIVECONTROLOFF, ERR_T_NOTRANSMIT, 
                 0, 0, 0);
        XllpUtilityOutputError(errorLog);
        return(errorLog);
    }  	

    DM_WaitMs(1);  	
    PostDisplayProgress(ERR_L_I2SCODEC, ERR_TS_ADC, 2);
    
    i2s_codec.data_len = sizeof(PowerDownControl);
    i2s_codec.data=PowerDownControl;
    
    if((status= i2c_write(i2c_regs, intReg, &i2s_codec))!= ERR_T_NONE)
    {	
        LOGERRORX(errorLog, 
                 ERR_L_I2SCODEC, ERR_TS_I2C_ADCWRITE, PWRDWN, ERR_T_NOTRANSMIT, 
                 0, 0, 0);
        XllpUtilityOutputError(errorLog);
        return(errorLog);
    }  	

    DM_WaitMs(1);  	
    PostDisplayProgress(ERR_L_I2SCODEC, ERR_TS_ADC, 3);
    
    i2s_codec.data_len = sizeof(LeftLineIn);
    i2s_codec.data=LeftLineIn;
    
    if((status= i2c_write(i2c_regs, intReg, &i2s_codec))!= ERR_T_NONE)
    {	
        LOGERRORX(errorLog, 
                 ERR_L_I2SCODEC, ERR_TS_I2C_ADCWRITE, LEFTLINEIN, ERR_T_NOTRANSMIT, 
                 0, 0, 0);
        XllpUtilityOutputError(errorLog);
        return(errorLog);
    }  	

    DM_WaitMs(1);  	
    PostDisplayProgress(ERR_L_I2SCODEC, ERR_TS_ADC, 4);

    i2s_codec.data_len = sizeof(RightLineIN);
    i2s_codec.data=RightLineIN;
    
    if((status= i2c_write(i2c_regs, intReg, &i2s_codec))!= ERR_T_NONE)
    {	
        LOGERRORX(errorLog, 
                 ERR_L_I2SCODEC, ERR_TS_I2C_ADCWRITE, RIGHTLINEIN, ERR_T_NOTRANSMIT, 
                 0, 0, 0);
        XllpUtilityOutputError(errorLog);
        return(errorLog);
    }  	

    DM_WaitMs(1);  	
    PostDisplayProgress(ERR_L_I2SCODEC, ERR_TS_ADC, 5);
    
    i2s_codec.data_len = sizeof(DAInterfaceFormat);
    i2s_codec.data=DAInterfaceFormat;
    
    if((status= i2c_write(i2c_regs, intReg, &i2s_codec))!= ERR_T_NONE)
    {	
        LOGERRORX(errorLog, 
                 ERR_L_I2SCODEC, ERR_TS_I2C_ADCWRITE, DAINTERFACEFORMAT, ERR_T_NOTRANSMIT, 
                 0, 0, 0);
        XllpUtilityOutputError(errorLog);
        return(errorLog);
    }  	

    DM_WaitMs(1);  	
    PostDisplayProgress(ERR_L_I2SCODEC, ERR_TS_ADC, 6);
  
    i2s_codec.data_len = sizeof(AAPathControl);
    i2s_codec.data=AAPathControl;
  
    if((status= i2c_write(i2c_regs, intReg, &i2s_codec))!= ERR_T_NONE)
    {	
        LOGERRORX(errorLog, 
                 ERR_L_I2SCODEC, ERR_TS_I2C_ADCWRITE, AAPATHCONTROL, ERR_T_NOTRANSMIT, 
                 0, 0, 0);
        XllpUtilityOutputError(errorLog);
        return(errorLog);
    }  	
		 
    DM_WaitMs(1);  	
    PostDisplayProgress(ERR_L_I2SCODEC, ERR_TS_ADC, 7);
 
    i2s_codec.data_len = sizeof(DAPathControl);
    i2s_codec.data=DAPathControl;

    if((status= i2c_write(i2c_regs, intReg, &i2s_codec))!= ERR_T_NONE)
    {	
        LOGERRORX(errorLog, 
                 ERR_L_I2SCODEC, ERR_TS_I2C_ADCWRITE, DAPATHCONTROL, ERR_T_NOTRANSMIT, 
                 0, 0, 0);
        XllpUtilityOutputError(errorLog);
        return(errorLog);
    }  	

    DM_WaitMs(1);  	
    PostDisplayProgress(ERR_L_I2SCODEC, ERR_TS_ADC, 8);
 
 //  reactivating the codec for use   
   
    i2s_codec.data_len = sizeof(ActiveControlOn);
    i2s_codec.data=ActiveControlOn;
   
    if((status= i2c_write(i2c_regs, intReg, &i2s_codec))!= ERR_T_NONE)
    {	
        LOGERRORX(errorLog, 
                 ERR_L_I2SCODEC, ERR_TS_I2C_ADCWRITE, ACTIVECONTROLON, ERR_T_NOTRANSMIT, 
                 0, 0, 0);
        XllpUtilityOutputError(errorLog);
        return(errorLog);
    }  	
   	
    DM_WaitMs(1);  	
    PostDisplayProgress(ERR_L_I2SCODEC, ERR_TS_ADC, 9);
    return(errorLog);
} 


⌨️ 快捷键说明

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