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

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

?? iis.c

?? 三星給予ARM920T內核的S3C2413的demo版本
?? C
?? 第 1 頁 / 共 2 頁
字號:
	rIISMOD = (0<<8) + (1<<6) + (0<<5) + (0<<4) + (1<<3) + (1<<2) + (1<<0);
	rIISFIC = (1<<14) + (1<<12);	  

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

	rINTMSK = ~(BIT_DMA1);
	//rINTSUBMSK=~(BIT_DMA1);

	//--- DMA1 Initialize
	rDISRCC1 = (1<<1) + (1<<0);   
	rDISRC1  = ((unsigned int)0x31000000);    
	rDIDSTC1 = (0<<1) + (0<<0);     
	rDIDST1  = (int)rec_buf;                            
	rDCON1   = (1<<31)+(0<<30)+(1<<29)+(0<<28)+(0<<27)+(1<<22)+(2<<20)+(rec_size/4);
	rDMAREQSEL1 = (3<<1) + (1<<0); 
	rDMASKTRIG1 = (0<<2) + (1<<1) + (0<<0);          //No-stop[2], DMA1 channel On[1], No-sw trigger[0] 

	if(mode ==1)
		printf("\n\nAre you ready to record sound via MIC-In on SMDK2411/2413?");
	if(mode ==2)
		printf("\n\nAre you ready to record sound via Line-In on SMDK2411/2413?");

	printf("\nPress any key to start record!\n");
	getchar();

	printf("Recording...\n");

	//IIS Rx start
	rIISCON |= 0x1;

	while(!Rec_Done)
	{
		//printf("STAT1: 0x%x CURR_TC: 0x%x		DCDST1: 0x%x\n", rDSTAT1&0x300000, rDSTAT1&0xfffff, rDCDST1);
		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
	rIISFIC    = 0x0;			//For FIFO flush

	ClearPending(BIT_DMA1);	
//	rSUBSRCPND=(BIT_SUB_DMA1);

	rINTMSK |= (BIT_DMA1);

	printf("\nEnd of Record!\n");	
    	
}

void IIS_RecSound_DMA1_Repeat(unsigned char *start_addr, unsigned int rec_size)
{
	unsigned char Exit_Key;

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

	//--- DMA1 Initialize
	rDISRCC1 = (1<<1) + (1<<0);   
	rDISRC1  = ((unsigned int)0x44700010);    
	rDIDSTC1 = (0<<1) + (0<<0);     
	rDIDST1  = (int)start_addr;                            
	rDCON1   = (1<<31)+(0<<30)+(1<<29)+(0<<28)+(0<<27)+(0<<22)+(2<<20)+(rec_size/4);
	rDMAREQSEL1 = (3<<1) + (1<<0); 
	rDMASKTRIG1 = (0<<2) + (1<<1) + (0<<0);          //No-stop[2], DMA1 channel On[1], No-sw trigger[0] 
	  
	printf("\nRecording...\n");

	//IIS Rx start
	//rIISCON |= 0x1;

	while(!Uart_GetKey())
	{
		Exit_Key=getchar();

		if( (Exit_Key == 'x') | (Exit_Key == 'X')) 
		{
			Rec_Done=1;
			break;
		}
	}

	//IIS Rx stop
	Delay(10);				//For end of H/W Rx

	rIISCON     = 0x0;			//IIS stop
	rDMASKTRIG1 = (1<<2);	//DMA1 stop
	rIISFIC    = 0x0;			//For FIFO flush

	printf("\n\nEnd of Record!");		
}

void __irq Rx_IIS_Int(void)
{
    rSUBSRCPND = BIT_SUB_RXD1;          //Clear pending bit (Requested)
    rSUBSRCPND;

    ClearPending(BIT_UART1);

    *_temp ++= RdURXH1(); 
}

void __irq DMA1_Rec_Done(void)
{
	ClearPending(BIT_DMA1);	
	//rSUBSRCPND=(BIT_DMA1);      

    Rec_Done = 1;
} 

void IIS_PlayWave_DMA2(unsigned char *start_addr, unsigned int play_size)
{
	unsigned char Exit_Key;
	
	pISR_DMA2 = (unsigned)DMA2_Done;
	ClearPending(BIT_DMA2);	
	   	
  	rIISCON = (0<<5) + (0<<4) +(1<<2) + (0<<1)+0;	   
  	rIISMOD = (0<<8) + (0<<7)+ (0<<5) + (2<<3)+ (0<<1) + (0<<0);
	rIISFIC = 0+(1<<15) ;	  
    rIISFIC = 0+(0<<15) ;	  
    	
	printf("\nIISLRCK = %d Hz", (int) IIS_Codec_CLK/384);

	rINTMSK = ~(BIT_DMA2);

	printf("\nConnect head-phone plug into speaker-out socket on SMDK2411 and Press any key.\n");
	getchar();
	
	printf("If you want to exit, Press the 'x' key.\n");
	printf("Now Play...\n");
	
	printf("If you want to disable IIS tx(PAUSE), Press '0' key\n");
	printf("If you want to enable IIS tx, Press '1' key\n");
	printf("If you want to stop DMA channel(STOP), Press '2' key\n");
	printf("If you want to start DMA channel, Press '3' key\n");
	
	//DMA2 Register Setting 
	rDISRC2  = (int)(start_addr); 
	rDISRCC2 = (0<<1) + (0<<0); 		  
	rDIDST2  = ((unsigned int)0x55000010);			
	rDIDSTC2 = (1<<1) + (1<<0); 
	// 31: ACK 	30: sync pclk  29:curr_tc int setting 28:unit transfer 27:single service 22: reload 20:half word 
	rDCON2   = (1<<31)+(0<<30)+(1<<29)+(0<<28)+(0<<27)+(0<<22)+(2<<20)+(play_size/4);
	// 5:1= 4th bit is the tx iis     0:set = hw zero = sw
	rDMAREQSEL2 = (4<<1)+(1<<0);
	//
	rDMASKTRIG2 = (0<<2) + (1<<1) + (0<<0);	    //No-stop, DMA2 channel On, and No-sw trigger 
       
	//IIS Tx Start
	rIISCON |= 0x1;		 //IIS Interface start

	while(!Uart_GetKey())
	{
		Exit_Key=getchar();
		
    	//->
		//khs.050510
		//	added for I2S bug test
    	if(Exit_Key == '0'){
			rIISCON |= (1<<4);
    		printf("\nPAUSE...\n");
    	}
		if(Exit_Key == '1'){
			rIISCON &= ~(1<<3);
		}
		if(Exit_Key == '2'){
			rDMASKTRIG2 |= (1<<2);
			rIISFIC &= ~(1<<13);	//* tx fifo disable
			while((rIISFIC & 0x0FC0)!=0);	//* wait until tx fifo gets empty
    		printf("\nSTOP...\n");
		}
		if(Exit_Key == '3'){
			rIISFIC |= (1<<13);	//* tx fifo enable
			rDISRC2  = (int)(start_addr);
			rDMASKTRIG2 &= ~(1<<2);
			rDMASKTRIG2 |= (1<<1);
		}
		//<-		

		if( (Exit_Key == 'x') | (Exit_Key == 'X')) 
			break;
		printf("STAT2: 0x%x CURR_TC: 0x%x		DCDST2: 0x%x\n", rDSTAT2&0x300000, rDSTAT2&0xfffff, rDCDST2);
	}
    	
	//IIS Tx Stop
	Delay(10);			 //For end of H/W Tx
	rIISCON	&= ~(1<<0);	    //IIS Interface stop

	rDMASKTRIG2  = (1<<2);	 //DMA2 stop
	rIISFIC = 0x0;	    //For FIFO flush
		
	ClearPending(BIT_DMA2);	
	//rSUBSRCPND=(BIT_SUB_DMA2);

	rINTMSK |= (BIT_DMA2);
 	
	printf("\nEnd of Play!\n");
}

void IIS_Paly_Rec_Simul(unsigned char *start_addr, unsigned int play_size)
{
	unsigned char Exit_Key;
	int i;

	pISR_DMA1= (unsigned)Play_Rec_Simul;
	ClearPending(BIT_DMA1);	

	rIISCON = (1<<5) + (1<<4) + (0<<3) + (0<<2) + (1<<1);	   
	rIISMOD = (0<<8) + (3<<6) + (0<<5) + (0<<4) + (1<<3) + (1<<2) + (1<<0);
	rIISFIC = (1<<15) + (1<<14) + (1<<13) + (1<<12);	  

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

	rINTMSK = ~(BIT_DMA1);

	printf("\nConnect head-phone plug into speaker-out socket on SMDK2460 and Press any key.\n");
	getchar();

	printf("If you want to exit, Press the 'x' key.\n");
	printf("Now Play...\n");

	//DMA2 Register Setting 
	rDISRC2  = (int)(start_addr); 
	rDISRCC2 = (0<<1) + (0<<0); 		  
	rDIDST2  = ((unsigned int)0x44700010);			
	rDIDSTC2 = (0<<2) + (1<<1) + (1<<0);				
	rDCON2   = (1<<31)+(0<<30)+(1<<29)+(0<<28)+(0<<27)+(0<<22)+(2<<20)+(play_size/4);
	rDMAREQSEL2 = (2<<1) + (1<<0); 
	rDMASKTRIG2 = (0<<2) + (1<<1) + (0<<0);	    //No-stop, DMA2 channel On, and No-sw trigger 

	//IIS Tx Start
	rIISCON |= 0x1;		 //IIS Interface start

	while(1)
	{
		Delay(10000);

		IIS_RecSound_DMA1_Repeat(rec_buf1, REC_LEN_IIS);	
		if( Rec_Done==1)
			break;	
	}

	Rec_Done=0;

	//IIS Tx Stop
	Delay(10);			 //For end of H/W Tx
	rIISCON	&= ~(1<<0);	    //IIS Interface stop

	rDMASKTRIG2  = (1<<2);	 //DMA2 stop
	rIISFIC = 0x0;	    //For FIFO flush

	ClearPending(BIT_DMA1);	
	rINTMSK |=(BIT_DMA1);

	printf("\nEnd of Play!\n");

}


void __irq DMA2_Done(void)
{

	rINTMSK |= (BIT_DMA2);
 	
	ClearPending(BIT_DMA2);	

	rIISCON	&= ~(1<<2)|(0<<0);
	rIISCON |= (1<<2)|(1<<0);
	
  	printf("\nPuhahah~~~");

	rINTMSK = ~(BIT_DMA2);
}


void __irq Play_Rec_Simul(void)
{
	
	rINTMSK |= (BIT_DMA1);
	ClearPending(BIT_DMA1);	

    rIISCON	&= ~(1<<0);
	rIISCON |= 0x1;
      
	printf("\nR~~~");	

	rINTMSK = ~(BIT_DMA1);
}

////////////////////////////////////////////////////////////////////////////////////
void _WrL3Addr(unsigned char data)
{	 
 	int 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(unsigned char data,int halt)
{
 	int 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
}





?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文一区在线播放| 日韩电影免费在线看| 91亚洲精品久久久蜜桃网站 | 国产精品影音先锋| 一区二区三区在线视频播放| 91精品国产综合久久久久久久 | 不卡的电影网站| 久久91精品国产91久久小草| 日韩码欧中文字| 国产日韩综合av| 欧美大片日本大片免费观看| 91视频一区二区三区| 国产在线视频精品一区| 亚洲图片欧美视频| 亚洲伦理在线精品| 国产精品久久久久久久久图文区| 日韩欧美国产一二三区| 欧美亚洲尤物久久| 99国产精品国产精品毛片| 国产一区二区三区久久久| 精品在线一区二区三区| 久久99精品视频| 国产精品综合av一区二区国产馆| 美女视频网站久久| 免费人成精品欧美精品| 蜜桃av噜噜一区| 91网站最新地址| 在线播放欧美女士性生活| 成人激情小说网站| 91视频com| 在线看国产一区二区| 欧美精品v国产精品v日韩精品 | 国产精品国产三级国产三级人妇 | 国产精品夜夜爽| 99久久久免费精品国产一区二区| 波多野结衣视频一区| 91一区二区在线观看| 日韩午夜激情av| 中文字幕在线观看不卡视频| 一区二区久久久久久| 麻豆极品一区二区三区| 99精品久久只有精品| 91麻豆精品国产| 国产欧美一区二区精品性色超碰| 亚洲视频资源在线| 久久国产精品72免费观看| 成人av网站在线观看免费| 这里只有精品视频在线观看| 中文字幕在线观看不卡视频| 日韩影院精彩在线| 91国偷自产一区二区三区观看| 欧美精品三级日韩久久| 亚洲欧美日韩电影| 成人午夜在线免费| 精品av久久707| 欧美aaa在线| 午夜日韩在线电影| 欧美r级在线观看| 亚洲3atv精品一区二区三区| 丁香婷婷综合色啪| 久久久久久久久久久99999| 亚洲成人免费观看| 在线亚洲免费视频| 亚洲色图在线播放| 成人免费视频视频| 久久久91精品国产一区二区三区| 天天综合日日夜夜精品| 欧美性一区二区| 亚洲成人手机在线| 久久尤物电影视频在线观看| 蜜芽一区二区三区| 久久精品一区蜜桃臀影院| 激情深爱一区二区| 精品日产卡一卡二卡麻豆| 国产精品一级在线| 亚洲欧美日本在线| 欧美久久久久久久久中文字幕| 污片在线观看一区二区| 欧美成人综合网站| 91网址在线看| 国产综合色在线视频区| 中文文精品字幕一区二区| av电影天堂一区二区在线| 丝袜美腿成人在线| 国产日韩成人精品| 欧美日韩视频一区二区| 国产美女在线精品| 亚洲精品乱码久久久久久日本蜜臀| 欧美精品丝袜久久久中文字幕| 加勒比av一区二区| 亚洲综合精品自拍| 中文字幕高清不卡| 制服视频三区第一页精品| 日本韩国欧美国产| 成人ar影院免费观看视频| 蜜桃精品视频在线观看| 亚洲成年人网站在线观看| 国产清纯白嫩初高生在线观看91| 欧美日本一道本在线视频| caoporm超碰国产精品| 国产精品一线二线三线精华| 欧美撒尿777hd撒尿| 精品福利在线导航| 欧美精品99久久久**| 色视频成人在线观看免| 成人免费视频一区| 成人av网站免费| av欧美精品.com| 福利视频网站一区二区三区| 欧美aaaaaa午夜精品| 欧美a级一区二区| 国产一区美女在线| 久久激情五月激情| 麻豆精品一区二区av白丝在线| 麻豆91在线观看| 国产成人三级在线观看| 国产麻豆日韩欧美久久| 成人看片黄a免费看在线| 97精品视频在线观看自产线路二| 色域天天综合网| 欧美精品777| 国产精品国产三级国产aⅴ无密码| 国产精品国产成人国产三级| 亚洲一区二区视频在线| 一区二区欧美在线观看| 狠狠狠色丁香婷婷综合久久五月| 国产成人啪免费观看软件| 欧美午夜不卡视频| 中文字幕第一区二区| 亚洲sss视频在线视频| 国产剧情一区在线| 欧美日韩一级黄| 国产日韩影视精品| 美女尤物国产一区| 色菇凉天天综合网| 久久精品人人做人人综合 | 一本大道久久a久久综合| 欧美大片在线观看| 亚洲成av人片在www色猫咪| 国产激情91久久精品导航| 欧美丰满一区二区免费视频| 亚洲男人的天堂一区二区| 国产精品一区在线观看乱码| 欧美变态口味重另类| 在线观看av不卡| 国产精品久久久久aaaa| 久久精品国产一区二区三| 在线一区二区视频| 国产精品美女视频| 91理论电影在线观看| 国产精品国产三级国产普通话99 | 国产精品久久久久久久久晋中 | 91亚洲国产成人精品一区二区三| 欧美中文字幕一区二区三区亚洲| 久久精品人人爽人人爽| 国产一区福利在线| 日韩欧美电影在线| 国产在线精品一区在线观看麻豆| 欧美精品一级二级| 爽好多水快深点欧美视频| 欧美日韩国产小视频| 日日骚欧美日韩| 久久免费偷拍视频| 粉嫩在线一区二区三区视频| 中文字幕av资源一区| 色狠狠色噜噜噜综合网| 日韩在线播放一区二区| 欧美精品一区二区久久婷婷| 日本一区二区三区四区在线视频 | 国产精品综合视频| 亚洲女同女同女同女同女同69| 欧美午夜片在线看| 国产成人一区在线| 五月激情丁香一区二区三区| 精品1区2区在线观看| 欧美专区亚洲专区| 国产精品一区二区在线看| 日本aⅴ亚洲精品中文乱码| 国产精品丝袜久久久久久app| 欧美一区二区私人影院日本| 久久精品一区二区| 久久精品国产精品亚洲精品| 国产精品视频一二| 国产精品久久久久久久久免费桃花| 在线观看亚洲精品视频| 国产精品 日产精品 欧美精品| 亚洲午夜免费视频| 亚洲欧洲一区二区三区| 精品久久99ma| 91精品国产91久久久久久最新毛片| 色噜噜狠狠成人中文综合| 极品少妇xxxx精品少妇偷拍| 亚洲gay无套男同| 日韩美女视频一区二区 | 日韩视频一区在线观看| 欧美剧情片在线观看| 欧美日韩在线免费视频| 欧美三区在线观看| 欧美年轻男男videosbes| 欧美精品xxxxbbbb|