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

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

?? iis.c

?? 三星S3C2440 IIS控制器驅動程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
	{
        	Uart_Printf(".");
         	Delay(2000);
       }
   
       Rec_Done = 0;

	//IIS Rx stop
       Delay(10);				//For end of H/W Rx
       rIISCON     = 0x0;			//IIS stop
       rDMASKTRIG1 = (1<<2);	//DMA1 stop
	rIISFCON    = 0x0;			//For FIFO flush

	rINTMSK  |= (BIT_DMA1);
    	Uart_Printf("\nEnd of Record!\n");	
}


void IIS_PlayWave_DMA2(unsigned char *start_addr, U32 play_size)
{
	pISR_DMA2  = (unsigned)DMA2_Done;
    	pISR_EINT0 = (unsigned)Muting;

    	if (IIS_MasterClk_Sel == 0)	//IIS Master Clock Source = PCLK
      	{
      		rIISCON = (1<<5) + (1<<2) + (1<<1);	   
      		//Bit[1]    IIS prescaler enable
		//Bit[2]    Rx idle 
      		//Bit[5]    Tx DMA enable 
    		rIISMOD = (0<<9)+(0<<8) + (2<<6) + (0<<5) + (0<<4) + (1<<3) + (1<<2) + (1<<0);
    		//Bit[1:0] Serial bit clock => 32fs,
    		//Bit[2]    Master clock => 384fs, 
    		//Bit[3]    Serial data bit per channel => 16bit,
    		//Bit[4]    Serial interface format => IIS compatible format
    		//Bit[5]    Active level of left/right channel => Low for left channel
    		//Bit[7:6] Tx/Rx mode select => Tx mode
    		//Bit[8]    Master/Slave mode => Master mode
    		//Bit[9]    Master clock => PCLK
    		rIISFCON = (1<<15) + (1<<13);	  
    		//Bit[13]  Tx FIFO enable
		//Bit[15]  Tx FIFO access mode => DMA   
		
		Uart_Printf("\nIISLRCK = %d Hz", (int) IIS_Codec_CLK/384);
      	}
      	else	   //IIS Master Clock Source = MPLLin
      	{
		rIISCON = (1<<5) + (1<<2) + (0<<1);	   
		//Bit[1]    IIS prescaler disable
		//Bit[2]    Rx idle 
      		//Bit[3]    Tx DMA enable 
    		rIISMOD = (1<<9)+(0<<8) + (2<<6) + (0<<5) + (0<<4) + (1<<3) + (1<<2) + (1<<0);
		//Bit[1:0] Serial bit clock => 32fs,
    		//Bit[2]    Master clock => 384fs, 
    		//Bit[3]    Serial data bit per channel => 16bit,
    		//Bit[4]    Serial interface format => IIS compatible format
    		//Bit[5]    Active level of left/right channel => Low for left channel
    		//Bit[7:6] Tx/Rx mode select => Tx mode
    		//Bit[8]    Master/Slave mode => Master mode
    		//Bit[9]    Master clock => MPLLin
		rIISFCON = (1<<15) + (1<<13);
		//Bit[13]  Tx FIFO enable
		//Bit[15]  Tx FIFO access mode => DMA   

		Uart_Printf("\nIISLRCK = %d Hz", (int) IIS_Codec_CLK/384);
      	}

	rINTMSK    = ~(BIT_EINT0 | BIT_DMA2);
	
	//DMA2 Register Setting 
	rDISRC2  = (int)(start_addr); 
       rDISRCC2 = (0<<1) + (0<<0); 		  
       rDIDST2  = ((U32)IISFIFO);			
	rDIDSTC2 = (0<<2) + (1<<1) + (1<<0);				
	rDCON2   = (1<<31)+(0<<30)+(1<<29)+(0<<28)+(0<<27)+(0<<24)+(1<<23)+(0<<22)+(1<<20)+(play_size/2);
       rDMASKTRIG2 = (0<<2) + (1<<1) + (0<<0);	    //No-stop, DMA2 channel On, and No-sw trigger 
    
	Uart_Printf("\nIf you want to mute or no mute, Push the 'EIN0' button repeatedly.\n");
    	Uart_Printf("Press any key to exit!!!\n");
	Uart_Printf("\nPlay...\n");
  
	//IIS Tx Start
    	rIISCON |= 0x1;		 //IIS Interface start
		
    	while(!Uart_GetKey());
    	
    	//IIS Tx Stop
    	Delay(10);			 //For end of H/W Tx
    	rIISCON	&= ~(1<<0);	    //IIS Interface stop

    	rDMASKTRIG2  = (1<<2);	 //DMA2 stop
	rIISFCON     = 0x0;	    //For FIFO flush
	rINTMSK |= (BIT_EINT0 | BIT_DMA2);
	 	
	Uart_Printf("\nEnd of Play!\n");
}

void Select_IIS_Master_CLK(void)
{
	int sel;
	
	//Uart_Printf("\nIIS Master Clock Source => MPLLin\n");
       Uart_Printf("\nSelect IIS Master Clock Source\n");
	//Uart_Printf("0:PCLK, 1:MPLLin\n");
	Uart_Printf("0:PCLK \n");
	sel = Uart_GetIntNum();		
	
	switch(sel)
	{
		case 0 : 
		//IIS Pre-scaler Setting
	  	rIISPSR = (5<<5) + 5;  
		rIISMOD = (0<<9);
		//In case PCLK = 50 MHz, IIS Codec CLK = 50/(5+1) = 8.34MHz
		Uart_Printf("\nIIS Master CLK(PCLK) = %4.2f MHz", (float)PCLK/MEGA);
		IIS_Codec_CLK = (float)PCLK/6;
		Uart_Printf("\nIIS Codec CLK = %4.2f MHz", IIS_Codec_CLK/MEGA);

		IIS_MasterClk_Sel = 0;	
      		break;

		/*case 1 : 
		rIISMOD = (1<<9);
		Uart_Printf("\nIIS Master CLK(MPLLin) = %4.2f MHz", (float)FIN/MEGA);
		IIS_Codec_CLK = (float)FIN;
		Uart_Printf("\nIIS Codec CLK = %4.2f MHz", IIS_Codec_CLK/MEGA);

		IIS_MasterClk_Sel = 1;
		break;*/

		default : 
		rIISMOD = (1<<9);
		Uart_Printf("\nIIS Master CLK(MPLLin) = %4.2f MHz", (float)FIN/MEGA);
		IIS_Codec_CLK = (float)FIN;
		Uart_Printf("\nIIS Codec CLK = %4.2f MHz", IIS_Codec_CLK/MEGA);

		IIS_MasterClk_Sel = 1;
		break;		
	}
}


//Initialization of UDA1341 Audio Codec using L3 Interface 
void Init1341(char mode)
{
 	//Port Initialize
	//----------------------------------------------------------
	//   PORT B GROUP
	//Ports  :   GPB4    GPB3   GPB2  
	//Signal :  L3CLOCK L3DATA   L3MODE
	//Setting:  OUTPUT   OUTPUT  OUTPUT 
	//	          [9:8]       [7:6]      [5:4]
	//Binary :    01,          01,        01 
	//----------------------------------------------------------    
       rGPBDAT = rGPBDAT & ~(L3M|L3C|L3D) |(L3M|L3C); //Start condition : L3M=H, L3C=H
       rGPBUP  = rGPBUP  & ~(0x7<<2) |(0x7<<2);	 //The pull up function is disabled GPB[4:2] 1 1100    
    	rGPBCON = rGPBCON & ~(0x3f<<4) |(0x15<<4);     //GPB[4:2]=Output(L3CLOCK):Output(L3DATA):Output(L3MODE)

	//L3 Interface
    	_WrL3Addr(0x14 + 2);     //STATUS (000101xx+10)
    	//_WrL3Data(0x60,0);	 //0,1,10, 000,0 : Status 0,Reset, 256fs,IIS-bus,no DC-filtering
	_WrL3Data(0x50,0);	 //0,1,01, 000,0 : Status 0,Reset, 384fs,IIS-bus,no DC-filtering
	
    	//_WrL3Addr(0x14 + 2);     //STATUS (000101xx+10)
    	//_WrL3Data(0x20,0);	 //0,0,10, 000,0 : Status 0,No reset,256fs,IIS-bus,no DC-filtering
    
    	_WrL3Addr(0x14 + 2);     //STATUS (000101xx+10)
    	_WrL3Data(0x81,0);	 //bit[7:0] => 1,0,0,0, 0,0,01 
	//Status 1,Gain of DAC 0 dB,Gain of ADC 0dB,ADC non-inverting,DAC non-inverting
	//Single speed playback,ADC-Off DAC-On
    
	//Record
    	if(mode)
    	{
	  	_WrL3Addr(0x14 + 2);    //STATUS (000101xx+10)
		//_WrL3Data(0xa2,0);	//1,0,1,0, 0,0,10 
		//Status 1,Gain of DAC 0 dB,Gain of ADC 6dB,ADC non-inverting,DAC non-inverting
	       //Single speed playback,ADC-On DAC-Off	 
					  
	       _WrL3Data(0xe2,0);	//bit[7:0] => 1,1,1,0, 0,0,11 
		//Status 1,Gain of DAC 6 dB,Gain of ADC 6dB,ADC non-inverting,DAC non-inverting
		//Single speed playback,ADC-On DAC-On					     

		//_WrL3Addr(0x14 + 0);    //DATA0 (000101xx+00)
		//_WrL3Data(0x3f,0);	//00,11 1111  : Volume control (6 bits)  
		//_WrL3Data(0x00,0);	//00,00 0000  : Volume control (6 bits) 0dB    

       	//_WrL3Addr(0x14 + 0);    //DATA0 (000101xx+00)
       	//_WrL3Data(0x7b,0);	//01,11 10,11 : Data0, Bass Boost 18~24dB, Treble 6dB		 
       
              //_WrL3Addr(0x14 + 0);    //DATA0 (000101xx+00)	  
       	//_WrL3Data(0xc4,0);	//1100 0,100  : Extended addr(3bits), 100 
       	//_WrL3Data(0x91,0);	//100,1 00,01 : DATA0, Enable AGC, 00, input amplifier gain channel 2 (2bits)					    
       
              _WrL3Addr(0x14 + 0);    //DATA0 (000101xx+00)
       	_WrL3Data(0xc2,0);	//1100 0,010  : Extended addr(3bits), 010 
              _WrL3Data(0x4d,0);	//010,0 11,01 : DATA0, MIC Amplifier Gain 9dB, input channel 1 select(input channel 2 off) 
       	//_WrL3Data(0x59,0);	//010,1 10,01 : DATA0, MIC Amplifier Gain 27dB, input channel 1 select(input channel 2 off)
              //_WrL3Data(0x41,0);	//010,0 00,01 : DATA0, MIC Amplifier Gain -3dB, input channel 1 select(input channel 2 off)
     	}
}

void _WrL3Addr(U8 data)
{	 
 	S32 i,j;

    	rGPBDAT  = rGPBDAT & ~(L3D | L3M | L3C) | L3C;	//L3D=L, L3M=L(in address mode), L3C=H

    	for(j=0;j<4;j++);	 //tsu(L3) > 190ns

	//GPB[4:2]=L3C:L3D:L3M
    	for(i=0;i<8;i++)	//LSB first
    	{
	  	if(data & 0x1)	//If data's LSB is 'H'
	  	{
			rGPBDAT &= ~L3C;	 //L3C=L
			rGPBDAT |= L3D;		 //L3D=H		 
			for(j=0;j<4;j++);	        //tcy(L3) > 500ns
			rGPBDAT |= L3C;		 //L3C=H
			rGPBDAT |= L3D;		 //L3D=H
			for(j=0;j<4;j++);	        //tcy(L3) > 500ns
	  	}
	  	else		//If data's LSB is 'L'
	  	{
			rGPBDAT &= ~L3C;	//L3C=L
			rGPBDAT &= ~L3D;	//L3D=L
			for(j=0;j<4;j++);	       //tcy(L3) > 500ns
			rGPBDAT |= L3C;	       //L3C=H
			rGPBDAT &= ~L3D;	//L3D=L
			for(j=0;j<4;j++);	       //tcy(L3) > 500ns		
	  	}
	  	data >>= 1;
    	}

    	rGPBDAT  = rGPBDAT & ~(L3D | L3M | L3C) | (L3C | L3M);	 //L3M=H,L3C=H   
}

void _WrL3Data(U8 data,int halt)
{
 	S32 i,j;

    	if(halt)
    	{
	  	rGPBDAT  = rGPBDAT & ~(L3D | L3M | L3C) | L3C;   //L3C=H(while tstp, L3 interface halt condition)	  
	  	for(j=0;j<4;j++);		//tstp(L3) > 190ns
    	}

    	rGPBDAT  = rGPBDAT & ~(L3D | L3M | L3C) | (L3C | L3M);   //L3M=H(in data transfer mode)	  
    	for(j=0;j<4;j++);		//tsu(L3)D > 190ns

	//GPB[4:2]=L3C:L3D:L3M
    	for(i=0;i<8;i++)
    	{
	  	if(data & 0x1)	//if data's LSB is 'H'
	  	{
	     		rGPBDAT &= ~L3C;		//L3C=L
	     		rGPBDAT |= L3D;			//L3D=H

	     		for(j=0;j<4;j++);			//tcy(L3) > 500ns
	     		rGPBDAT |= (L3C | L3D);	//L3C=H,L3D=H
	     		for(j=0;j<4;j++);		 	//tcy(L3) > 500ns
	  	}
	  	else		//If data's LSB is 'L'
	  	{
	     		rGPBDAT &= ~L3C;	//L3C=L
	     		rGPBDAT &= ~L3D;	//L3D=L
	     		for(j=0;j<4;j++);		//tcy(L3) > 500ns
	     		rGPBDAT |= L3C;		//L3C=H
	     		rGPBDAT &= ~L3D;	//L3D=L
	     		for(j=0;j<4;j++);		//tcy(L3) > 500ns
	  	}
		data >>= 1;		//For check next bit
    	}

    	rGPBDAT  = rGPBDAT & ~(L3D | L3M | L3C) | (L3C | L3M);    //L3M=H,L3C=H
}

/* ISRs */
void __irq DMA1_Rec_Done(void)
{
    ClearPending(BIT_DMA1);     //Clear pending bit
    Rec_Done = 1;
} 

void __irq DMA2_Done(void)
{
    	ClearPending(BIT_DMA2); //Clear pending bit
    	Uart_Printf("\n~~~");
	//Uart_Printf("\nrIISMOD=0x%x\n",rIISMOD);
}

void __irq RxInt(void)
{
    rSUBSRCPND = BIT_SUB_RXD1;	    //Clear pending bit (Requested)
    rSUBSRCPND;
    ClearPending(BIT_UART1);

    *_temp ++= RdURXH1(); 
}

void __irq Muting(void)
{
    ClearPending(BIT_EINT0);		//Clear pending bit

    if(mute)    //Mute
    {
	  _WrL3Addr(0x14 + 0);		//DATA0 (000101xx+00)
	  _WrL3Data(0xa4,0);		  //10,1,00,1,00 : after, no de-emp, mute, flat 
	  mute = 0;
	  Uart_Printf("\nMute on...\n");
    }
    else	  //No mute
    {
	  _WrL3Addr(0x14 + 0);		//DATA0 (000101xx+00)
	  _WrL3Data(0xa0,0);		  //10,1,00,0,00 : after, no de-emp, no mute, flat 
	  mute = 1;
	  Uart_Printf("\nMute off...\n");
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲福利电影网| 亚洲精品一区二区三区在线观看| 久久精品国产秦先生| 伊人开心综合网| 中文字幕日韩一区二区| 中文在线资源观看网站视频免费不卡 | 亚洲女人****多毛耸耸8| 欧美精品一区二区久久久| 日韩欧美成人一区| 91精品免费在线观看| 日韩精品在线一区| 久久人人超碰精品| 国产人成一区二区三区影院| 国产精品伦理在线| 亚洲视频一区在线观看| 亚洲欧美激情插| 亚洲国产精品综合小说图片区| 亚洲国产精品一区二区www| 亚洲一区视频在线观看视频| 午夜久久久久久久久久一区二区| 午夜不卡在线视频| 美女视频免费一区| 狠狠色狠狠色综合| 成年人国产精品| 欧美日韩免费观看一区二区三区| 51精品国自产在线| 国产日韩一级二级三级| 日韩码欧中文字| 亚洲va欧美va天堂v国产综合| 男男gaygay亚洲| 国产69精品久久777的优势| 97精品电影院| 制服丝袜亚洲精品中文字幕| 久久亚洲综合色一区二区三区| 国产喂奶挤奶一区二区三区| 亚洲精品伦理在线| 精品一区二区久久| 色偷偷一区二区三区| 欧美一区二区三区在线视频| 国产亚洲福利社区一区| 亚洲最新视频在线播放| 久久99最新地址| 色八戒一区二区三区| 日韩精品一区二区三区中文精品| 国产精品久久看| 美女高潮久久久| 欧美中文字幕一二三区视频| 久久久久久久久久久电影| 亚洲男女一区二区三区| 国产一区二区不卡在线| 欧美精品亚洲一区二区在线播放| 久久久久久久久99精品| 天天综合日日夜夜精品| 99久久免费精品| 2021国产精品久久精品| 午夜精品久久久久久久99水蜜桃 | 日本伊人色综合网| 成人av资源在线| 精品国产污污免费网站入口| 亚洲久草在线视频| 成人午夜私人影院| 欧美tickle裸体挠脚心vk| 亚洲一区日韩精品中文字幕| 成人一区二区三区在线观看| 精品日韩在线观看| 天天综合日日夜夜精品| 欧美中文字幕亚洲一区二区va在线| 国产亚洲污的网站| 久99久精品视频免费观看| 67194成人在线观看| 亚洲最大的成人av| www.亚洲精品| 亚洲四区在线观看| www.在线欧美| 中文字幕亚洲精品在线观看 | 99国内精品久久| 国产亚洲视频系列| 狠狠色狠狠色综合系列| 精品国产乱码久久久久久浪潮 | 国产成人av一区二区三区在线| 欧美一区二区日韩一区二区| 日日摸夜夜添夜夜添国产精品| 欧洲一区二区三区在线| 中文字幕视频一区二区三区久| 国产成人在线色| 国产欧美一区二区三区在线老狼 | 国产午夜亚洲精品羞羞网站| 国模大尺度一区二区三区| 精品欧美一区二区久久| 激情综合亚洲精品| 久久久久久久久久久久久久久99| 高清在线不卡av| 一区在线观看视频| 在线视频综合导航| 亚洲地区一二三色| 91精品久久久久久久99蜜桃| 天堂成人免费av电影一区| 欧美一级国产精品| 国产在线一区二区综合免费视频| 国产亚洲精品资源在线26u| 成人av网址在线| 亚洲电影在线播放| 欧美一区二区福利在线| 国产成人亚洲综合色影视| 国产精品久久二区二区| 欧美日韩一区在线观看| 久久99精品久久久久久动态图| 日本一区二区三区国色天香| 色婷婷国产精品| 日韩av网站在线观看| 久久精品免视看| 在线观看免费视频综合| 一区二区三区免费| 欧美日韩在线直播| 成人性视频网站| 一区二区视频在线看| 欧美一区二区三区不卡| 国产成人久久精品77777最新版本| 国产精品网站导航| 国产亚洲午夜高清国产拍精品| 色一情一伦一子一伦一区| 免费欧美在线视频| 一区二区三区四区在线播放| 欧美精品一区二区三区久久久| 色香色香欲天天天影视综合网| 精品一区二区在线观看| 一区二区三区不卡在线观看 | 国产成人免费xxxxxxxx| 亚洲电影视频在线| 亚洲色图欧美在线| 久久久久久亚洲综合| 在线播放中文字幕一区| 91最新地址在线播放| 国产在线看一区| 手机精品视频在线观看| 亚洲精品自拍动漫在线| 国产人伦精品一区二区| 日韩女优av电影| 欧美日本国产视频| 一本大道久久a久久综合婷婷| 国产一区欧美二区| 久久国产成人午夜av影院| 亚洲成人av在线电影| 亚洲欧美日韩在线不卡| 中文字幕不卡一区| 久久久精品国产99久久精品芒果| 日韩欧美在线影院| 欧美日韩国产美| 欧美色综合网站| 色狠狠桃花综合| 在线观看免费亚洲| 欧美最猛性xxxxx直播| 欧美专区亚洲专区| 欧美日韩国产首页| 67194成人在线观看| 91精品国产综合久久福利| 欧美男男青年gay1069videost| 在线精品视频一区二区三四| 色欧美日韩亚洲| 色猫猫国产区一区二在线视频| 成人毛片在线观看| www.av精品| 一本色道久久综合亚洲精品按摩| eeuss影院一区二区三区| 成人18视频在线播放| 91蜜桃婷婷狠狠久久综合9色| 91网上在线视频| 久久综合九色欧美综合狠狠 | 色综合天天视频在线观看| 色综合天天综合网国产成人综合天| 97久久精品人人做人人爽50路| 99视频一区二区| 色婷婷久久综合| 91.成人天堂一区| 欧美成人猛片aaaaaaa| 精品久久久久99| 国产精品视频你懂的| 一区二区欧美视频| 美腿丝袜亚洲色图| 成人黄色电影在线| 精品视频一区 二区 三区| 日韩网站在线看片你懂的| 国产人久久人人人人爽| 亚洲综合在线视频| 麻豆一区二区99久久久久| 国产成人午夜精品影院观看视频| 91视频com| 精品av久久707| 亚洲日本va午夜在线影院| 日韩不卡一二三区| 成人免费黄色在线| 欧美性色黄大片| 精品少妇一区二区三区在线播放 | 欧美日韩精品一区视频| 久久男人中文字幕资源站| 亚洲色图视频网站| 久久精品国产亚洲一区二区三区| eeuss影院一区二区三区| 日韩一本二本av| 欧美高清在线视频|