📄 aic23_linein_to_lineout_loop_test.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);}/* ------------------------------------------------------------------------ * * * * AIC23_rget * * * * Return value of codec register regnum * * * * ------------------------------------------------------------------------ */Uint8 AIC23_rget( Uint8 regnum ){ Uint8 cmd[2]; 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 aic23_linein_to_lineout_loop_test( ){ AIC33_CodecHandle aic23handle; AIC23_init( ); aic23handle = DAVINCIEVM_AIC33_openCodec( 0 ); for (;;) { /* Read a sample */ while ( ! ( DAVINCIEVM_AIC33_read16( aic23handle, &sample_data ) ) ); /* Send a sample */ while ( ! ( DAVINCIEVM_AIC33_write16( aic23handle, sample_data ) ) ); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -