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

📄 aic23.c

📁 dsp在音频处理中的运用
💻 C
字号:

#include <aic23.h> 
#include <csl_i2c.h>
extern void sI2c_init(CSL_I2cHandle* shI2c);
extern void    I2C_init(CSL_I2cHandle   hI2c);
extern Uint16  OSK5912_I2C_write(CSL_I2cHandle hI2c,Uint16 slave_addr,Uint8* data,Uint16 length);
extern Uint16  OSK5912_I2C_read(CSL_I2cHandle hI2c,Uint16 slave_addr,Uint8* data,Uint16 length);
void OSK5912_AIC23_rset(CSL_I2cHandle hI2c,  Uint16 regnum, Uint16 regval );
void OSK5912_AIC23_config(CSL_I2cHandle hI2c, OSK5912_AIC23_Config *Config );


void OSK5912_AIC23_openCodec( Uint32 id, OSK5912_AIC23_Config *Config )
{   
     CSL_I2cHandle   hI2c;
	 sI2c_init(&hI2c);
     I2C_init(hI2c);
   
    /* Reset the AIC23 */

    OSK5912_AIC23_rset(hI2c, OSK5912_AIC23_RESET, 0 );

    /* Configure the rest of the AIC23 registers */
    OSK5912_AIC23_config( 0, Config );
    CSL_i2cClose(hI2c);
    /* Return 0 as a handle */
    return ;
}

void OSK5912_AIC23_rset(CSL_I2cHandle hI2c,  Uint16 regnum, Uint16 regval )
{
    Uint16 buf = ( ( regval & 0x00FF ) << 8 ) | ( regnum << 1 ) | ( regval >> 8 );
    OSK5912_I2C_write(hI2c, OSK5912_AIC23_I2CADDR, ( Uint8* )&buf, 2 );
    //codecstate.regs[regnum] = regval;
}


void OSK5912_AIC23_config(CSL_I2cHandle hI2c, OSK5912_AIC23_Config *Config )
{
    int i;

    /* Use default parameters if none are given */
    //if ( Config == NULL )
    //Config = &codecstate;

    /* Configure power down register first */
    OSK5912_AIC23_rset(hI2c, OSK5912_AIC23_POWERDOWN,Config -> regs[OSK5912_AIC23_POWERDOWN] );

    /* Assign each register */
    for ( i = 0; i < OSK5912_AIC23_NUMREGS; i++ )
        if ( i != OSK5912_AIC23_POWERDOWN )
            OSK5912_AIC23_rset(hI2c,i, Config -> regs[i] );
}

⌨️ 快捷键说明

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