📄 cochlear_func.c
字号:
/* Functions */
#include <csl_i2c.h>
// Define Parameters
//---------------------------------------------------
// Define Registers of WM8950
#define I2C_Addr 0x1a // I2C Slave Address of WM8950
// Declare Functions
//---------------------------------------------------
void delay(void); // Delay
void init_WM8950(void); // Initialize WM8950
/* Functions */
//---------------------------------------------------
void delay(void)
{
Uint32 j = 0,k = 0;
for(j = 0;j<0x30;j++)
{
for(k= 0;k<0xFFFF;k++)
{}
}
}
// Initialize WM8950
void init_WM8950(void)
{
Uint16 WM8950_R0[2] = {0x00,0x00}; // R0 - Reset Register
Uint16 WM8950_R1[2] = {0x03,0x5f}; // R1 - Power Manage1 Register1
Uint16 WM8950_R2[2] = {0x04,0x15}; // R2 - Power Manage2 Register2
Uint16 WM8950_R4[2] = {0x08,0x18}; // R4 - Audio Interface Register
Uint16 WM8950_R6[2] = {0x0c,0xa1}; // R6 - Clock GEN Control Register
Uint16 WM8950_R7[2] = {0x0e,0x0b}; // R7 - Additional Control Register
Uint16 WM8950_R8[2] = {0x10,0x05}; // R8 - GPIO Stuff Register
Uint16 WM8950_R14[2] = {0x1d,0x08}; // R14 - ADC Control Register
Uint16 WM8950_R32[2] = {0x41,0x38}; // R32 - ALC Control Register1
Uint16 WM8950_R33[2] = {0x42,0x0f}; // R33 - ALC Control Register2
Uint16 WM8950_R34[2] = {0x44,0x32}; // R34 - ALC Control Register3
Uint16 WM8950_R35[2] = {0x46,0x09}; // R35 - Noise Gate Register
Uint16 WM8950_R44[2] = {0x58,0x03}; // R44 - Input Control Register
Uint16 WM8950_R45[2] = {0x5a,0x10}; // R45 - INP PGA Gain Control Register
Uint16 WM8950_R47[2] = {0x5f,0x00}; // R47 - ADC Boost Control Register
I2C_write(WM8950_R0,2,1,I2C_Addr,1,30000);
I2C_write(WM8950_R1,2,1,I2C_Addr,1,30000);
I2C_write(WM8950_R2,2,1,I2C_Addr,1,30000);
I2C_write(WM8950_R4,2,1,I2C_Addr,1,30000);
I2C_write(WM8950_R6,2,1,I2C_Addr,1,30000);
I2C_write(WM8950_R7,2,1,I2C_Addr,1,30000);
I2C_write(WM8950_R8,2,1,I2C_Addr,1,30000);
I2C_write(WM8950_R14,2,1,I2C_Addr,1,30000);
I2C_write(WM8950_R32,2,1,I2C_Addr,1,30000);
I2C_write(WM8950_R33,2,1,I2C_Addr,1,30000);
I2C_write(WM8950_R34,2,1,I2C_Addr,1,30000);
I2C_write(WM8950_R35,2,1,I2C_Addr,1,30000);
I2C_write(WM8950_R44,2,1,I2C_Addr,1,30000);
I2C_write(WM8950_R45,2,1,I2C_Addr,1,30000);
I2C_write(WM8950_R47,2,1,I2C_Addr,1,30000);
}
/*-----------------------------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -