亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? iis.c

?? 支持三星原產的S3C24A0開發板
?? C
?? 第 1 頁 / 共 3 頁
字號:
/****************************************************************
 NAME: iis.c
 DESC: S3C24A0A iis Function Test
 HISTORY:
 APR 15, 2003 : ky.shim : draft for S3C24A0X rev0.0
 FEB 13, 2004 : ky.shim : SMDK24A0 rev0.61
 MAR 20,2004 : ky.shim : Modification for 384fs
 ****************************************************************/
#include "24a0addr.h"
#include "24a0lib.h"
#include "def.h"
#include "iis.h"

void ChangeDMA1(void);
void IIS_PortSetting(void);

void _WrL3Addr(U8 data);
void _WrL3Data(U8 data,int halt);

void __irq DMA1_IISSDO_Done(void);
void __irq DMA0_IISSDI_Done(void);
void __irq Rx_IIS_Int(void);
void __irq IIS_Muting(void);

static U32 srcAddress;
U8 *srcPt,*saveSrcPt;
#define srcAddress 0x12000000


#define L3D (1<<15)            //GPDAT[15] = L3DATA
#define L3C (1<<16)            //GPDAT[16] = L3CLOCK
#define L3M (1<<17)            //GPDAT[17] = L3MODE

#define PLAY    0
#define RECORD  1
#define REC_LEN 0x50000       //327,680 Bytes
#define IIS_BUFFER _NONCACHE_STARTADDRESS

#define DataCount   0x10000     //IIS Master/Slave Data Rx/Tx Count
#define DataDisplay 0x100       //IIS Master Data Display Count
//#define DataDisplay 0x10000     //IIS Master Data Display Count
//#define DataCount   0x100       //IIS Master/Slave Data Rx/Tx Count

#define PollMode		0		// Polling Mode
#define DMA0Mode	1		// DMA0 Mode

unsigned char *Buf,*_temp;
unsigned short *rec_buf;

volatile unsigned int size = 0;
volatile unsigned int   fs = 0;
volatile char    which_Buf = 1;
volatile char     Rec_Done = 0;
volatile char         mute = 1;

//------------------------------------------------------------------------------
//      SMDK24A0 IIS Configuration
// GPDAT15 = L3DATA, GPDAT16 = L3CLOCK, GPDAT17 = L3MODE
//------------------------------------------------------------------------------
void * func_iis_test[][2]=
{	
	//IIS Controller
	(void *)Play_Iis,						"Play IIS UDA1341       ",	
	(void *)Record_Iis, 					"Reco IIS UDA1341       ",
	(void *)Iis_Tx,						"IIS Slave Set Test 	",
	(void *)Iis_Rx,						"IIS Master Set Test	",
	(void *)Test_IisRecPlay,			    "IIS Reco&Play Test     ",	
	0,0
};

void Ch14_IIS(void)
{
	int i;
	
	Uart_Printf("\n======  IIS Controller Test program start ======\n");
		
	while(1)
	{
		i=0;
		Uart_Printf("\n\n");
		while(1)
		{   //display menu
			Uart_Printf("%2d:%s",i,func_iis_test[i][1]);
			i++;
			if((int)(func_iis_test[i][0])==0)
			{
				Uart_Printf("\n");
				break;
			}
			if((i%4)==0)
			Uart_Printf("\n");
		}

		Uart_Printf("\nPress Enter key to exit : ");
		i = Uart_GetIntNum();
		if(i==-1) break;		// return.
		if(i>=0 && (i<((sizeof(func_iis_test)-1)/8)) )	// select and execute...
			( (void (*)(void)) (func_iis_test[i][0]) )();
	}
	
	Uart_Printf("\n====== IIS Controller Test program end ======\n");
}

//*********************[ Test_Iis ] *********************************
void Play_Iis(void)
{
    unsigned int save_GPCON_M, save_GPCON_L, save_GPPU;
    int Intr_Time_Arg=0;	
		int i;
	
    Uart_Printf("[ IIS (Master Mode) Test (Play Using UDA1341 Codec) ]\n");
    Uart_TxEmpty(0);
    
    save_GPCON_M  = rGPCON_M;         
    save_GPCON_L  = rGPCON_L;     	
    save_GPPU = rGPPU;

    IIS_PortSetting();
    //Uart_Printf("rGPCON_M,rGPPU 0x%x 0x%x\n",rGPCON_M,rGPPU);
	
    pISR_UART0 = (unsigned)Rx_IIS_Int;
    pISR_DMA  = (unsigned)DMA1_IISSDO_Done;
    pISR_EINT0_2= (unsigned)IIS_Muting;

    rEINTPEND = 0xffffff;
    rSRCPND = BIT_EINT0_2; //to clear the previous pending states
    rINTPND = BIT_EINT0_2;
    
    rEINTMASK=~(1<<0);	
    rINTMSK    = ~(BIT_EINT0_2 | BIT_UART0 | BIT_DMA);
    rINTSUBMSK = ~(BIT_SUB_RXD0|BIT_SUB_DMA1);
   
    //Non-cacheable area = 0x11000000 ~ 0x13cf0000
    Buf   = (unsigned char *)IIS_BUFFER;
    _temp = Buf;

    Uart_Printf("Download the PCM(no ADPCM) file by DNW serial port(With header)!!\n");
    Uart_Printf("Download address is %xh\n", Buf);
    while(((unsigned int)_temp - (unsigned int)Buf) < 4)
    {
       Led_Display(0);
       Delay(1500);
       Led_Display(15);
       Delay(1500);
    }
    size = *(Buf) | *(Buf + 1)<<8 | *(Buf + 2)<<16 | *(Buf + 3)<<24;
    Uart_Printf("\nNow, Downloading... [ File Size : %7d(      0)]",size);
    while(((unsigned int)_temp - (unsigned int)Buf) < size){
	  Uart_Printf("\b\b\b\b\b\b\b\b%7d)",(unsigned int)_temp - (unsigned int)Buf);
		Delay(5000);
    }
    Uart_Printf("\b\b\b\b\b\b\b\b%7d)]\n",(unsigned int)_temp - (unsigned int)Buf);

    rINTSUBMSK |= BIT_SUB_RXD0;
    rINTMSK  |= BIT_UART0;
    size = *(Buf + 0x2c) | *(Buf + 0x2d)<<8 | *(Buf + 0x2e)<<16 | *(Buf + 0x2f)<<24;
    size = (size>>1)<<1;	//for 44B0X
    fs   = *(Buf + 0x1c) | *(Buf + 0x1d)<<8 | *(Buf + 0x1e)<<16 | *(Buf + 0x1f)<<24;

    Uart_Printf("Sample Size = 0x%x\n",size/2);
    Uart_Printf("Sampling Frequency = %d Hz\n",fs);
    Uart_Printf("\n[ Now play the wave file .....]\n");
    Uart_Printf("If you want to mute or no mute push the 'EIN0' key repeatedly\n");

    // Modified function test(2410->2440->24A0)
    //Uart_Printf("Select Autoreload Interrupt occuring time\n");
    //Uart_Printf("(0:When TC=0, 1:After autoreload is perfomed) : ");
    //Intr_Time_Arg = Uart_GetIntNum();
	
    Init1341(PLAY);

      //DMA1 Initialize
    rDISRC1  = (int)(Buf + 0x30);               //0x11000030~(Remove WAV. header)      
    rDISRCC1 = (0<<1) + (0<<0);                 //The source is in the system bus(AHB), Increment      
    rDIDST1  = ((U32)IISFIFO);                  //IISFIFO    
    rDIDSTC1 = (Intr_Time_Arg<<2) + (1<<1) + (1<<0);                 //The destination is in the peripheral bus(APB), Fixed  
    rDCON1   = (1<<31)+(0<<30)+(1<<29)+(0<<28)+(0<<27)+(2<<24)+(1<<23)+(0<<22)+(1<<20)+(size/2);
      //Handshake[31], Sync PCLK[30], CURR_TC Interrupt Request[29], Single Tx[28], Single service[27], 
      //I2SSDO[26:24], DMA source selected[23],Auto-reload[22], Half-word[21:20], size/2[19:0]
      
    rDMASKTRIG1 = (0<<2) + (1<<1) + (0<<0);          //No-stop[2], DMA2 channel On[1], No-sw trigger[0] 

      //IIS 384fs Initialize
    if(fs==44100)               //16.9344MHz(384fs)
    {
        rIISPSR = (2<<5) + 2;   //Prescaler A,B=2 <- FCLK 203.2128MHz(1:2:4)  <- (PCLK = 50.8032MHz)/3 = 16.9344MHz      
    }
    else if(fs==22050)       //8.4672MHz(384fs)
    {
        rIISPSR = (5<<5) + 5;   //Prescaler A,B=5 <- (PCLK = 50.8032MHz)/6 = 8.4672MHz    
    }
    rIISCON = (1<<5) + (1<<2) + (1<<1);         //Tx DMA enable[5], Rx idle[2], Prescaler enable[1]
      //Master mode[8],Tx mode[7:6],Low for Left Channel[5],IIS format[4],16bit ch.[3],CDCLK 384fs[2],IISCLK 32fs[1:0]
    rIISMOD = (0<<8) + (2<<6) + (0<<5) + (0<<4) + (1<<3) + (1<<2) + (1<<0);      

	  
/*	  
    //ChangeMPllValue(82,4,1);  //FCLK=90.316800MHz, PCLK=45.158400MHz <-- 5.644800MHz*8
    //ChangeClockDivider(0,1);		  // 1:1:2    
    //ChangeSdramParameter(HCLK); 
    //Uart_Init(45158400,115200);
      //IIS 256fs Initialize
    if(fs==44100)               //11.2896MHz(256fs)
    {
        rIISPSR = (2<<5) + 2;   //Prescaler A,B=2 <- FCLK 135.4752MHz(1:2:4)  <- (PCLK = 33.857142MHz)/3 = 11.2896MHz      
    }
    else if(fs==22050)                        //fs=22050, 5.644800MHz(256fs)
    {
        rIISPSR = (7<<5) + 7;   //Prescaler A,B=7 <- (PCLK = 45MHz)/8 = 5.625MHz    
    }
    rIISCON = (1<<5) + (1<<2) + (1<<1);         //Tx DMA enable[5], Rx idle[2], Prescaler enable[1]
      //Master mode[8],Tx mode[7:6],Low for Left Channel[5],IIS format[4],16bit ch.[3],CDCLK 256fs[2],IISCLK 32fs[1:0]
    rIISMOD = (0<<8) + (2<<6) + (0<<5) + (0<<4) + (1<<3) + (0<<2) + (1<<0);
*/
    
    rIISFCON = (1<<15) + (1<<13);        //Tx DMA,Tx FIFO --> start piling....
    //rEINTPEND = 0xffffff;
    Uart_Printf("\nPress any key to exit!!!\n");
      //IIS Tx Start
    rIISCON |= 0x1;             //IIS Interface start
    while(!Uart_GetKey());

      //IIS Tx Stop
    Delay(10);                   //For end of H/W Tx
    rIISCON      = 0x0;          //IIS Interface stop
    rDMASKTRIG1  = (1<<2);       //DMA1 stop
    rIISFCON     = 0x0;          //For FIFO flush
    
    size = 0;
    
    rGPCON_M = save_GPCON_M;
    rGPCON_L = save_GPCON_L;	
    rGPPU = save_GPPU;

    rINTSUBMSK|=(BIT_SUB_DMA1);
    rINTMSK |= (BIT_DMA | BIT_UART0 | BIT_EINT0_2);
    rEINTMASK=0xffffff;
	
    //(0,0)=1:1:1, (0,1)=1:1:2, (1,0)=1:2:2 (1,1)=1:2:4, (2,0)=1:4:5, (2,1)=1:4:8
    ChangeClockDivider(1,1);
    //(76,4,1)=84Mhz,  (93,4,1)=101Mhz, (54,1,1)=124Mhz, (68,4,0)=152Mhz
    //(93,4,0)=202Mhz, (47,1,0)=220Mhz, (72,2,0)=240Mhz, (79,2,0)=261Mhz
    //(195,10,0)=203MHz, (60,2,0)=204MHz	
    //ChangeMPllValue(195,10,0);// FCLK=203MHz   
    ChangeMPllValue(60,2,0);// FCLK=204Mhz 
    ChangeSdramParameter(HCLK);
    Uart_Init(0,115200);
	
    mute = 1;

}



//**************** [ Record_Iis ] ***************************************
void Record_Iis(void)
{
    unsigned int save_GPCON_M, save_GPCON_L, save_GPPU;
    int Intr_Time_Arg=0;
    Uart_Printf("[ IIS (Master Mode) Test (Record Using UDA1341 codec) ]\n");	
    Uart_TxEmpty(0);
 
    save_GPCON_M  = rGPCON_M;         
    save_GPCON_L  = rGPCON_L;     	
    save_GPPU = rGPPU;

    IIS_PortSetting();
        
      //--- Record Buf initialize
      //Non-cacheable area = 0x11000000 ~ 0x13ff0000
    rec_buf = (unsigned short *)IIS_BUFFER;

    pISR_DMA  = (unsigned)DMA0_IISSDI_Done;
    pISR_EINT0_2= (unsigned)IIS_Muting;

    rINTMSK = ~(BIT_DMA);
    rINTSUBMSK = ~(BIT_SUB_DMA0);
    
    Init1341(RECORD);

      //--- DMA0 Initialize
    rDISRCC0 = (1<<1) + (1<<0);                         //APB, Fix  
    rDISRC0  = ((U32)IISFIFO);                          //IISFIFO
    rDIDSTC0 = (0<<1) + (0<<0);                         //AHB, Increment
    rDIDST0  = (int)rec_buf;                            //0x11000000 ~
    rDCON0   = (1<<31)+(0<<30)+(1<<29)+(0<<28)+(0<<27)+(2<<24)+(1<<23)+(1<<22)+(1<<20)+REC_LEN;
      //Handshake, sync PCLK, TC int, single tx, single service, I2SSDI, I2S Rx request, 
      //Off-reload, half-word, 0x50000 half word.
    rDMASKTRIG0 = (0<<2) + (1<<1) + 0;    //No-stop, DMA1 channel on, No-sw trigger
    
      //IIS 384fs Initialize
    if(fs==44100)               //16.9344MHz(384fs)
    {
        rIISPSR = (2<<5) + 2;   //Prescaler A,B=2 <- FCLK 203.2128MHz(1:2:4)  <- (PCLK = 50.8032MHz)/3 = 16.9344MHz      
    }
    else if(fs==22050)       //8.4672MHz(384fs)
    {
        rIISPSR = (5<<5) + 5;   //Prescaler A,B=5 <- (PCLK = 50.8032MHz)/6 = 8.4672MHz    
    }
    rIISMOD = (0<<8) + (1<<6) + (0<<5) + (0<<4) + (1<<3) + (1<<2) + (1<<0);
      //Master,Rx,L-ch=low,IIS,16bit ch,CDCLK=384fs,IISCLK=32fs    
    rIISCON = (0<<5) + (1<<4) + (1<<3) + (0<<2) + (1<<1);
      //Tx DMA disable,Rx DMA enable,Tx idle,Rx not idle,prescaler enable,stop
	  

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91国产免费观看| 国产99精品国产| 一区二区三区久久久| 国产精品久久久久久久久晋中 | 日韩欧美成人午夜| 欧美日韩高清在线播放| 欧美日韩大陆一区二区| 欧美日韩精品一区二区三区蜜桃 | 精品国产亚洲在线| 精品少妇一区二区三区免费观看 | 久久久久亚洲蜜桃| 国产网站一区二区| 国产精品美女久久久久久2018| 国产精品传媒入口麻豆| 亚洲精品欧美激情| 婷婷激情综合网| 韩国欧美国产一区| 国产91精品在线观看| 色菇凉天天综合网| 91精品国产黑色紧身裤美女| 久久久久综合网| 亚洲精品欧美激情| 免费av成人在线| 国产99久久久国产精品免费看| 色综合天天综合网天天看片| 69久久99精品久久久久婷婷 | 在线看日韩精品电影| 在线成人午夜影院| 亚洲国产精品黑人久久久| 亚洲夂夂婷婷色拍ww47| 久色婷婷小香蕉久久| 99精品视频一区二区| 欧美三级视频在线播放| 2024国产精品| 亚洲第一成年网| 国产久卡久卡久卡久卡视频精品| 91女厕偷拍女厕偷拍高清| 欧美精品123区| 国产精品久久久久7777按摩| 日韩**一区毛片| 99久久99久久久精品齐齐| 日韩一区二区免费在线观看| 99精品黄色片免费大全| 天堂一区二区在线| 日本一区二区三区国色天香| 亚洲综合视频网| 国产精品一区久久久久| 欧美日本高清视频在线观看| 欧美高清在线一区| 裸体在线国模精品偷拍| 欧美午夜视频网站| 国产精品久久久久9999吃药| 国产综合久久久久久久久久久久| 欧洲一区二区三区在线| 亚洲欧洲国产日本综合| 国产精品亚洲午夜一区二区三区 | 日韩综合在线视频| 日本丶国产丶欧美色综合| 欧美国产精品久久| 激情av综合网| 日韩欧美的一区| 日韩高清在线一区| 欧美性色综合网| 亚洲三级电影网站| www.欧美.com| 自拍av一区二区三区| 国产91精品在线观看| 国产视频一区二区在线| 激情av综合网| 久久精品一二三| 国产成人一级电影| 国产片一区二区| 国产一区二区在线观看免费| 精品国产一区二区国模嫣然| 久久精品国产亚洲aⅴ| 日韩精品自拍偷拍| 精品一区二区三区视频在线观看| 欧美一区二区女人| 韩日av一区二区| 久久九九久久九九| 成人高清免费观看| 亚洲欧美日韩成人高清在线一区| 91成人在线观看喷潮| 亚洲五码中文字幕| 91精品国产色综合久久不卡蜜臀| 欧美aaaaaa午夜精品| 2021国产精品久久精品| 国产成人福利片| 亚洲欧美激情在线| 欧美美女黄视频| 老色鬼精品视频在线观看播放| 精品国产精品网麻豆系列| 国产精品 日产精品 欧美精品| 国产精品成人网| 欧美日韩高清一区二区不卡| 美女爽到高潮91| 亚洲欧洲日韩在线| 69av一区二区三区| 国产成人午夜99999| 亚洲精品日韩专区silk| 91精品欧美一区二区三区综合在 | 久久不见久久见中文字幕免费| 精品不卡在线视频| 成人一级片网址| 亚洲成人免费视| 久久久噜噜噜久久中文字幕色伊伊| 99精品国产热久久91蜜凸| 亚洲午夜日本在线观看| 精品国产sm最大网站| 色婷婷久久综合| 久久99久久精品| 亚洲欧美日韩人成在线播放| 日韩亚洲国产中文字幕欧美| 成人性生交大片免费| 天堂蜜桃91精品| 日韩理论电影院| 久久综合狠狠综合久久综合88 | 国产精品一级黄| 午夜国产精品影院在线观看| 国产日韩精品久久久| 宅男噜噜噜66一区二区66| 成人黄色免费短视频| 青青草精品视频| 亚洲线精品一区二区三区八戒| 欧美国产欧美综合| 日韩视频不卡中文| 欧美日韩一区三区| 99视频精品在线| 国产精品888| 日韩精品亚洲专区| 亚洲第一电影网| 亚洲精品国产精品乱码不99| 国产欧美日韩另类视频免费观看| 日韩欧美你懂的| 欧美精品123区| 欧美日韩精品一区二区三区四区| 97精品视频在线观看自产线路二| 国产精品中文字幕日韩精品| 蜜臀久久久久久久| 丝袜亚洲另类欧美| 亚洲午夜影视影院在线观看| 亚洲欧美乱综合| 亚洲欧美韩国综合色| 国产精品电影院| 日本一区二区三区免费乱视频| 精品福利视频一区二区三区| 日韩一级精品视频在线观看| 日韩色视频在线观看| 日韩午夜在线播放| 精品日韩99亚洲| 欧美刺激午夜性久久久久久久| 欧美一区二区三区在| 日韩一级片网站| 欧美不卡一区二区| 精品国产髙清在线看国产毛片| 精品国产免费一区二区三区香蕉| 91精品福利在线一区二区三区 | 综合中文字幕亚洲| 成人免费在线视频| 亚洲免费大片在线观看| 亚洲免费在线观看| 五月综合激情网| 七七婷婷婷婷精品国产| 久久99在线观看| 国产成人自拍高清视频在线免费播放| 国产盗摄女厕一区二区三区| www.色精品| 在线免费不卡视频| 日韩欧美国产一区二区在线播放| 26uuu亚洲综合色欧美| 中文在线一区二区| 亚洲图片欧美视频| 蜜桃传媒麻豆第一区在线观看| 国产一区二三区| 91色九色蝌蚪| 69p69国产精品| 欧美国产视频在线| 一区二区三区在线视频观看 | 中文在线一区二区 | 久久综合久久久久88| 国产精品蜜臀在线观看| 三级在线观看一区二区| 国产精品影音先锋| 欧美专区日韩专区| 久久九九国产精品| 亚洲一区二区三区激情| 久久成人18免费观看| 色香色香欲天天天影视综合网| 在线综合亚洲欧美在线视频 | 精品视频在线视频| 久久网这里都是精品| 亚洲香肠在线观看| 国产成人精品三级| 4438成人网| 亚洲色欲色欲www| 国产精品影视天天线| 在线成人av网站| 亚洲三级理论片| 国产成人福利片| 欧美xxxx在线观看|