📄 main.c
字号:
#include <stdio.h>
#include "hw_lib.h"
#include "apb_i2c_module.h"
/*
static unsigned char script_aic23[][3] = {//LOUT I2S SLAVE MODE
// USED FOR PALYBACK()
{0x34,0x0a,0x00},
{0x34,0x0c,0x07},
{0x34,0x0e,0x03},
{0x34,0x10,0x00},
{0x34,0x12,0x01}
};
*/
/*
static unsigned char script_aic23[][3] = {//Lin1 I2S SLAVE MODE
// USED FOR record
{0x34,0x01,0x17},
{0x34,0x03,0x17},
{0x34,0x05,0x10},
// {0x34,0x05,0x79},
// {0x34,0x07,0x11},
{0x34,0x08,0x12},
{0x34,0x0a,0x05},
{0x34,0x0c,0x00},
{0x34,0x0e,0x02},
{0x34,0x10,0x01},
{0x34,0x12,0x01}
};
*/
/**************************
static unsigned char script_aic23[][3] = {
{0x34,0x01,0x17},
{0x34,0x03,0x17},
{0x34,0x05,0x79},
{0x34,0x07,0x79},
{0x34,0x08,0x10},
{0x34,0x0a,0x00},
{0x34,0x0c,0x20},
{0x34,0x0e,0x02},
{0x34,0x10,0x18},
{0x34,0x12,0x01},
{0x34,0x1e,0x00},
};
/*
static unsigned char script_aic23[][3] = {//MICIN I2S SLAVE MODE
// USED FOR record
{0x34,0x01,0x17},
{0x34,0x03,0x17},
//{0x34,0x05,0x10},
{0x34,0x05,0x7f},
//{0x34,0x07,0x11},
{0x34,0x06,0x0},
{0x34,0x08,0x14},
{0x34,0x0a,0x05},
{0x34,0x0c,0x01},
//{0x34,0x0e,0x03},
{0x34,0x0e,0x02},
//{0x34,0x10,0x01},
{0x34,0x10,0x00},
{0x34,0x12,0x01}
};
*/
/*
static unsigned char script_aic23[][3] = {//LOUT I2S SLAVE MODE
// USED FOR PALYBACK(),MIC IN
{0x34,0x00,0x17},
{0x34,0x02,0x17},
//{0x34,0x05,0x10},
//{0x34,0x05,0x79},
//{0x34,0x07,0x11},
//{0x34,0x06,0x0},
{0x34,0x08,0x14},
//{0x34,0x08,0x1c},
{0x34,0x0a,0x05},
{0x34,0x0c,0x0b},
//{0x34,0x0e,0x03},
{0x34,0x0e,0x02}, //usb mode
//{0x34,0x10,0x01},
{0x34,0x10,0x00},
{0x34,0x12,0x01}
};
*/
static unsigned char script_aic23[][3]={ //USED FOR record
{0x34,0x01,0x1f},
{0x34,0x02,0x17},
{0x34,0x08,0x12},
{0x34,0x0a,0x00},
{0x34,0x0c,0x8},
{0x34,0x0e,0x02},
{0x34,0x10,0x01},
{0x34,0x12,0x01}
};
#define PIN_MASKBASE 0x20020000
int PinMask( int device , int enable )
{
u32 mask;
int error = 0;
switch( device )
{
case 0: // disable 656 out ( 68k clock ).
mask = (1<<14);
break;
case 1: // i2c out
mask = 0x00000400;
break;
case 2:
mask = (1<<21); // disable 656 out ( sensor clock enable)
break;
case 3: // 68k enable( sci disable )
mask = (1<<15);
break;
default:
error = 1;
}
if( mask )
{
volatile int* pinmark = (volatile int*)hw_map_io( PIN_MASKBASE , 0x1000 , 0 );
if( pinmark )
{
if( enable )
pinmark[0x10c/4] |= mask;
else
pinmark[0x10c/4] &= ~mask;
hw_unmap_io( (void*)pinmark , 0x1000);
}
else
{
error = 2;
}
}
return error;
}
#define mysetreg(reg,data) *reg = (data)
#define myredreg(reg,data) data = *reg
#define CLKSEL ((volatile int *)0x20020144)
int main(void)
{
int i , count = sizeof(script_aic23) / sizeof(script_aic23[0]);
int temp;
PinMask( 1 , 1 ); // enable i2c pin mask
/*
myredreg(CLKSEL,temp);
mysetreg(CLKSEL,temp|0x0);
myredreg(((int*)0x2002010c),temp);
mysetreg(((int*)0x2002010c),temp|1<<18);
*/
init_i2c();
for( i=0; i<count; i++ )
{
transmitData( 2 , &script_aic23[i][1] , script_aic23[i][0]/2 );
hw_delay(1);
}
dele_i2c();
while(0)
{
playback();
}
//record();
getchar();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -