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

📄 aic33_linein_to_lineout_loop_test.c

📁 TI的DM6446的硬件平台搭建的相关例子
💻 C
字号:

#include "davincievm_aic33.h"
#include "davincievm_i2c.h"

#define AIC23_I2C_ADDR 0x1a
Int16 sample;
Int16 sample_data;

    /* Loop */
Uint16 temp;
Uint32 temp1,temp2[5];

/* ------------------------------------------------------------------------ *
 *                                                                          *
 *  AIC23_rset                                                            *
 *                                                                          *
 *      Set codec register regnum to value regval                           *
 *                                                                          *
 * ------------------------------------------------------------------------ */
void AIC23_rset( Uint8 regnum, Uint8 regval )
{
    Uint8 cmd[2];
	if(regnum<4)
    cmd[0] = (regnum<<1)|0x01;    // 8-bit Register Address
	else
	cmd[0] = (regnum<<1);
    cmd[1] = regval;    // 8-bit Register Data

    temp=DAVINCIEVM_I2C_write( AIC23_I2C_ADDR, cmd, 2);
	//temp=DAVINCIEVM_I2C_write( AIC23_I2C_ADDR, cmd, 2);
    //cmd[0]=cmd[1];
    //temp=DAVINCIEVM_I2C_write( TVP5146_I2C_ADDR, cmd, 1 );
	//DAVINCIEVM_I2C_write( TVP5146_I2C_ADDR, cmd, 1 );
}

/* ------------------------------------------------------------------------ *
 *                                                                          *
 *  AIC23_rget                                                            *
 *                                                                          *
 *      Return value of codec register regnum                               *
 *                                                                          *
 * ------------------------------------------------------------------------ */
Uint8 AIC23_rget( Uint8 regnum )
{
    Uint8 cmd[2];
    //Int16 i;

    cmd[0] = regnum;    // 8-bit Register Address
    cmd[1] = 0;         // 8-bit Register Data

    DAVINCIEVM_I2C_write ( AIC23_I2C_ADDR, cmd, 1 );
    DAVINCIEVM_I2C_read (  AIC23_I2C_ADDR, cmd, 1 );

    return cmd[0];
}

void AIC23_init( )
{

	AIC23_rset( 0x0f, 0x00 );

    AIC23_rset( 0x06, 0x00 );        

    AIC23_rset( 0x07, 0x53);

	AIC23_rset( 0x04, 0x11 );

	AIC23_rset( 0x05, 0x01);

	AIC23_rset( 0x08, 0x00 );

	AIC23_rset( 0x02, 0xff );

    AIC23_rset( 0x00, 0x17 );  

	AIC23_rset( 0x03, 0xff );

	AIC23_rset( 0x01, 0x17 );

	AIC23_rset( 0x09, 0x01 );


    DAVINCIEVM_waitusec( 1000 );     
}
Int16 aic33_linein_to_lineout_loop_test( )
{
       Int16 msec;
	   AIC33_CodecHandle aic33handle;
	   AIC23_init( );
	   aic33handle = DAVINCIEVM_AIC33_openCodec( 0 );
        for (;;)
        {
            /* Read a sample */
            while ( ! ( DAVINCIEVM_AIC33_read16( aic33handle, &sample_data ) ) );

            /* Send a sample */
            while ( ! ( DAVINCIEVM_AIC33_write16( aic33handle, sample_data ) ) );
        }


    DAVINCIEVM_AIC33_closeCodec( aic33handle );

    return 0;
}

⌨️ 快捷键说明

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