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

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

?? iis.c

?? s3c2410開發板的測試代碼,包括lcd
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*
*********************************************************
* Copyright (c)
* All rights reserved.				            
*
* 文件名稱:Uart0.c
* 文件標識:
* 摘    要:S3C2410 IIS (UDA1341) Record & Play Test Program
*             (DMA2, Double Buffer, Record, Play)
* 當前版本:1.0
* 作    者:劉征
* 完成日期:2005.4.3
*
* 取代版本:
* 作    者:
* 完成日期:
*********************************************************
*/

/*
*********************************************************
*   					 頭文件
*********************************************************
*/
#include "2410addr.h"
#include "2410lib.h"
#include "def.h"
#include "iis.h"
#include "wave.h"
#include "wave1.h"

/*
*********************************************************
*  				    函數原型
*********************************************************
*/
void ChangeDMA2(void);
void IIS_PortSetting(void);
void _WrL3Addr(U8 data);
void _WrL3Data(U8 data,int halt);
void __irq DMA2_Done(void);
void __irq DMA2_Rec_Done(void);
void __irq RxInt(void);
void __irq Muting(void);

/*
*********************************************************
*  					  常量
*********************************************************
*/
#define L3C (1<<4)              //GPB4 = L3CLOCK
#define L3D (1<<3)              //GPB3 = L3DATA
#define L3M (1<<2)              //GPB2 = L3MODE

#define PLAY    0
#define RECORD  1
//#define REC_LEN 0x50000         //327,680 Bytes
#define REC_LEN 0x100000         //1,048,576 Bytes

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

#define PollMode    0           //1: Polling Mode
#define DMA2Mode    1           //1: DMA2 Mode

/*
*********************************************************
*  					  變量
*********************************************************
*/
unsigned char  *_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;

//------------------------------------------------------------------------------
//      S3c2410 IIS Configuration
// GPB4 = L3CLOCK, GPB3 = L3DATA, GPB2 = L3MODE
// GPE4 = I2SSDO,  GPE3 = I2SSDI, GPE2 = CDCLK, GPE1 = I2SSCLK, GPE0 = I2SLRCK  
//------------------------------------------------------------------------------

/*
*********************************************************
* 函數介紹:本函數是iis play 測試程序。				
* 輸入參數:無
* 輸出參數:無
* 返回值  :無
*********************************************************
*/
void Test_Iis(void)
{
    unsigned int save_B, save_E, save_PB, save_PE;
    volatile unsigned char key = 0;

    Uart_TxEmpty(0);
    
    ChangeClockDivider(1,1);        //1:2:4
    ChangeMPllValue(0x96,0x5,0x1);  //FCLK=135.428571MHz (PCLK=33.857142MHz)

    Uart_Init(33857142,115200);    
    
    Uart_Printf("[ IIS test (Play) using UDA1341 CODEC ]\n");
    
    save_B  = rGPBCON;       
    save_E  = rGPECON;       
    save_PB = rGPBUP;
    save_PE = rGPEUP;

    IIS_PortSetting();//set i/o port 

    //中斷函數入口
    pISR_DMA2  = (unsigned)DMA2_Done;
    pISR_EINT0 = (unsigned)Muting;
    //外部中斷0,串口0,DMA2  
    rINTMSK    = ~(BIT_EINT0 | BIT_DMA2);
    _temp = wave;
    
    while(1)
    {
    	Uart_Printf("You select play wave file :\n");
    	Uart_Printf("'1'--wave file1,  '2'--wave file2\n");
    	Uart_Printf("You put another key ---quit!\n");
    	key = Uart_Getch();
    	if(key == '1')
    	{
    		_temp = wave;//play wave file 1
    	}
    	else if(key == '2')
    	{
    		_temp = wave1;//play wave file 2
    	}
    	else 
    	{
    		key = 0; //quit
    		goto STOP;
    	}
	    
	    if(key == '1' || key == '2')
	    { 
		    //根據WAVE文件的格式得到文件大小
		    size = *(_temp + 0x28) | *(_temp + 0x29)<<8 | *(_temp + 0x2a)<<16 | *(_temp + 0x2b)<<24;
		    size = (size>>1)<<1;
		    
		    //根據WAVE文件的格式得到采樣率
		    fs   = *(_temp + 0x18) | *(_temp + 0x19)<<8;
		
		    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");
		    
		    //initialize UDA1341
		    Init1341(PLAY);
		    //DMA2 Initialize
		    //0x31000030~(Remove header)    
		    rDISRC2  = (int)(_temp + 0x30);  
		    rDISRCC2 = (0<<1) + (0<<0);                 //The source is in the system bus(AHB), Increment      
		    rDIDST2  = ((U32)IISFIFO);                  //IISFIFO    
		    rDIDSTC2 = (1<<1) + (1<<0);                 //The destination is in the peripheral bus(APB), Fixed  
		    rDCON2   = (1<<31)+(0<<30)+(1<<29)+(0<<28)+(0<<27)+(0<<24)+(1<<23)+(0<<22)+(1<<20)+(size/4);
		      //1010 0000 1001 xxxx xxxx xxxx xxxx xxxx
		      //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]
		      
		    rDMASKTRIG2 = (0<<2) + (1<<1) + (0<<0);          //No-stop[2], DMA2 channel On[1], No-sw trigger[0] 
		
		      //IIS Initialize
		    if(fs==44100)               //11.2896MHz(256fs)
		        rIISPSR = (2<<5) + 2;   //Prescaler A,B=2 <- FCLK 135.4752MHz(1:2:4)     
		    else                        //fs=22050, 5.6448MHz(256fs)
		        rIISPSR = (5<<5) + 5;   //Prescaler A,B=5 <- FCLK 135.4752MHz(1:2:4)  
		        
		    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....
		
		    Uart_Printf("\nPress 'q'or'Q' to exit!!!\n");
		    
		      //IIS Tx Start
		    rIISCON |= 0x1;             //IIS Interface start
		    while(!(key =Uart_Getch()))
		    {
			    if((rDSTAT2 & 0xfffff) < (size/6))
			    {
			    	ChangeDMA2();
			    }
			}
			//IIS Tx Stop
		    Delay(10);                   //For end of H/W Tx
		    rIISCON      = 0x0;          //IIS Interface stop
		    rDMASKTRIG2  = (1<<2);       //DMA2 stop
		    rIISFCON     = 0x0;          //For FIFO flush		
		    size = 0;
		    if(key == 'q' || key == 'Q')
		    {
		    	key = 0;
		    	goto STOP;
		    }
		    key = 0;
		}
    }
STOP:

    rGPBCON = save_B;
    rGPECON = save_E;
    rGPBUP  = save_PB;
    rGPEUP  = save_PE;

    rINTMSK = (BIT_DMA2 | BIT_EINT0);//關DMA2中斷及外部中斷0

    ChangeMPllValue(0xa1,0x3,0x1);    // FCLK=202.8MHz
    Uart_Init(0,115200);
    mute = 1;
}

/*
*********************************************************
* 函數介紹:本函數是iis record 測試程序。				
* 輸入參數:無
* 輸出參數:無
* 返回值  :無
*********************************************************
*/
void Record_Iis(void)
{
    unsigned int save_B, save_E, save_PB, save_PE;

    Uart_TxEmpty(0);

    ChangeClockDivider(1,1);        //1:2:4
    ChangeMPllValue(0x96,0x5,0x1);  //FCLK=135428571Hz, PCLK=3.385714MHz

    Uart_Init(33857142,115200);
    
    Uart_Printf("[ Record test using UDA1341 ]\n");
    
    save_B  = rGPBCON;       
    save_E  = rGPECON;       
    save_PB = rGPBUP;
    save_PE = rGPEUP;

    IIS_PortSetting();//I/O set 
        
      //Record Buf initialize, Non-cacheable area = 0x31000000 ~ 0x33feffff
    rec_buf = (unsigned short *)0x31000000;

    pISR_DMA2  = (unsigned)DMA2_Rec_Done;
    pISR_EINT0 = (unsigned)Muting;

    rINTMSK = ~(BIT_DMA2);

    Init1341(RECORD);

      //--- DMA2 Initialize
    rDISRCC2 = (1<<1) + (1<<0);                         //APB, Fix  
    rDISRC2  = ((U32)IISFIFO);                          //IISFIFO
    rDIDSTC2 = (0<<1) + (0<<0);                         //PHB, Increment
    rDIDST2  = (int)rec_buf;                            //0x31000000 ~
    rDCON2   = (1<<31)+(0<<30)+(1<<29)+(0<<28)+(0<<27)+(1<<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.
    rDMASKTRIG2 = (0<<2) + (1<<1) + 0;    //No-stop, DMA2 channel on, No-sw trigger

      //IIS Initialize
      //Master,Rx,L-ch=low,IIS,16bit ch,CDCLK=256fs,IISCLK=32fs
    rIISMOD = (0<<8) + (1<<6) + (0<<5) + (0<<4) + (1<<3) + (0<<2) + (1<<0);
    rIISPSR = (2<<5) + 2; //Prescaler_A/B=2 <- FCLK 135.4752MHz(1:2:4),11.2896MHz(256fs),44.1KHz
    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
    rIISFCON = (1<<14) + (1<<12);     //Rx DMA,Rx FIFO --> start piling....

    Uart_Printf("Press any key to start record!!!\n");
    Uart_Getch();
    Uart_Printf("Recording...\n");

      //Rx start
    rIISCON |= 0x1;

    while(!Rec_Done);

    rINTMSK  = BIT_DMA2;
    Rec_Done = 0;

      //IIS Stop
    Delay(10);                          //For end of H/W Rx
    rIISCON     = 0x0;                  //IIS stop
    rDMASKTRIG2 = (1<<2);               //DMA2 stop
    rIISFCON    = 0x0;                  //For FIFO flush
    
    Uart_Printf("End of Record!!!\n");
    Uart_Printf("Press any key to play recorded data\n");
    Uart_Printf("If you want to mute or no mute push the 'EIN0' key repeatedly\n");
    Uart_Getch();//得到輸入值

    size = REC_LEN * 2;
    Uart_Printf("Size = %d\n",size);
    
    //播放錄入的音頻數據
    Init1341(PLAY);

    pISR_DMA2 = (unsigned)DMA2_Done;
    rINTMSK   = ~(BIT_DMA2 | BIT_EINT0);

      //DMA2 Initialize
    rDISRCC2 = (0<<1) + (0<<0);                         //AHB, Increment
    rDISRC2  = (int)rec_buf;                            //0x31000000
    rDIDSTC2 = (1<<1) + (1<<0);                         //APB, Fixed
    rDIDST2  = ((U32)IISFIFO);                          //IISFIFO
    rDCON2   = (1<<31)+(0<<30)+(1<<29)+(0<<28)+(0<<27)+(0<<24)+(1<<23)+(0<<22)+(1<<20)+(size/2);
      //Handshake, sync PCLK, TC int, single tx, single service, I2SSDO, I2S request, 
      //Auto-reload, half-word, size/2
    rDMASKTRIG2 = (0<<2)+(1<<1)+0;    //No-stop, DMA2 channel on, No-sw trigger 

      //IIS Initialize
      //Master,Tx,L-ch=low,iis,16bit ch.,CDCLK=256fs,IISCLK=32fs

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久久久久久| 久久er精品视频| 一本大道久久a久久综合| 国产精品免费av| 成人毛片老司机大片| 中文字幕久久午夜不卡| 成人精品视频一区| 综合色中文字幕| 欧美无砖砖区免费| 日韩av一区二区三区| 日韩欧美国产午夜精品| 国产精品18久久久久| 日本一区二区视频在线| 91免费视频网| 日韩精品久久理论片| 精品久久久久久久久久久久久久久 | 免费在线看成人av| 欧美mv和日韩mv国产网站| 国产精品一线二线三线精华| 国产精品少妇自拍| 欧美在线观看视频一区二区三区| 五月婷婷色综合| 久久久久久免费| 欧美性生活久久| 国产综合色在线视频区| 亚洲欧美激情在线| 91精品国产综合久久久久久| 国内成人自拍视频| 亚洲女爱视频在线| 日韩一区二区高清| 99久久综合精品| 免费的成人av| 亚洲综合一区二区三区| 久久综合视频网| 91成人在线精品| 国产精品一线二线三线精华| 亚洲成人av一区二区三区| 久久久99久久| 欧美精品一二三| 不卡的av网站| 激情成人综合网| 亚洲一区在线观看视频| 国产视频一区不卡| 欧美丰满少妇xxxxx高潮对白| 成人性色生活片免费看爆迷你毛片| 亚洲午夜久久久久久久久久久| 久久婷婷国产综合精品青草 | 国产一区不卡视频| 亚洲一级电影视频| 中文字幕二三区不卡| 欧美一卡二卡在线观看| 色诱视频网站一区| 粉嫩aⅴ一区二区三区四区五区| 丝袜亚洲另类欧美| 亚洲老司机在线| 国产欧美日韩不卡| 精品粉嫩超白一线天av| 3d成人h动漫网站入口| 一本一本大道香蕉久在线精品| 国产精品一级黄| 毛片一区二区三区| 天天综合色天天| 亚洲午夜久久久久久久久电影网 | 91玉足脚交白嫩脚丫在线播放| 久草这里只有精品视频| 五月天激情综合| 亚洲精品国产品国语在线app| 欧美激情一区二区三区四区| 精品免费一区二区三区| 欧美一级在线观看| 欧美一区二区三区免费| 欧美一区二区三区性视频| 欧美日韩国产高清一区二区三区 | 91麻豆精东视频| av电影天堂一区二区在线| 国产91在线|亚洲| 国产传媒一区在线| 高清av一区二区| caoporen国产精品视频| 不卡视频免费播放| 9色porny自拍视频一区二区| 成人黄色a**站在线观看| 国产suv精品一区二区三区| 国产精品一区二区久久不卡| 国产一区二区三区四区五区入口| 美女视频免费一区| 精品一区二区三区不卡| 国产综合久久久久影院| 国产乱色国产精品免费视频| 国产成人免费av在线| 成人黄色小视频| 色综合久久88色综合天天6| 在线精品视频免费播放| 69堂精品视频| 久久久综合网站| 国产精品精品国产色婷婷| 亚洲欧美日韩在线播放| 亚洲电影视频在线| 男女视频一区二区| 国产精品一区二区免费不卡| 99天天综合性| 欧美三级在线看| 日韩写真欧美这视频| 亚洲国产精品ⅴa在线观看| 成人欧美一区二区三区视频网页| 亚洲精品成人悠悠色影视| 偷拍与自拍一区| 国产一区二区三区国产| 99视频有精品| 日韩一区二区电影| 中文在线一区二区 | 久久五月婷婷丁香社区| 亚洲精品福利视频网站| 久久国产夜色精品鲁鲁99| 国产91富婆露脸刺激对白| 欧美综合在线视频| 精品久久久久久无| 亚洲综合丁香婷婷六月香| 久久爱www久久做| 91在线视频网址| 日韩欧美国产精品一区| 亚洲欧洲一区二区在线播放| 首页国产欧美久久| 成人午夜免费电影| 欧美一区二区三区四区五区 | 一区二区三区四区高清精品免费观看| 日韩精品久久理论片| 99精品在线免费| 精品免费日韩av| 一卡二卡三卡日韩欧美| 国产河南妇女毛片精品久久久| 欧美午夜一区二区| 国产精品色呦呦| 精品一区二区三区影院在线午夜| 欧美中文字幕不卡| 欧美国产欧美亚州国产日韩mv天天看完整 | 欧美三级在线播放| 国产精品免费人成网站| 久久国产成人午夜av影院| 欧美亚洲动漫制服丝袜| 欧美国产日韩在线观看| 精品一区二区三区不卡 | 精品成人私密视频| 一区二区激情视频| 99v久久综合狠狠综合久久| 久久婷婷国产综合精品青草 | 国产米奇在线777精品观看| 欧美日韩一级二级三级| 一区二区中文字幕在线| 懂色av一区二区夜夜嗨| 337p日本欧洲亚洲大胆色噜噜| 亚洲高清一区二区三区| 一本到一区二区三区| 国产精品伦一区二区三级视频| 狠狠色丁香久久婷婷综| 欧美一区二区三区在| 日韩在线一区二区三区| 欧美日韩亚洲综合在线| 国产精品成人一区二区艾草 | 日韩美女一区二区三区| 亚洲成a人v欧美综合天堂| 在线看不卡av| 一区二区三区日韩欧美| 色综合天天性综合| 亚洲丝袜美腿综合| 99精品国产99久久久久久白柏| 中文字幕av一区二区三区免费看| 精品一区二区三区免费毛片爱| 欧美一级国产精品| 免费成人在线视频观看| 欧美巨大另类极品videosbest| 亚洲成人动漫在线观看| 欧美日韩国产成人在线免费| 亚洲线精品一区二区三区八戒| 欧美日韩日日摸| 日韩一区精品字幕| 欧美一级夜夜爽| 国产一区高清在线| 国产亚洲欧美日韩在线一区| 韩国成人在线视频| 久久久久综合网| 成人小视频免费观看| 亚洲日本va午夜在线电影| 91成人国产精品| 日日噜噜夜夜狠狠视频欧美人| 欧美一区二区三区人| 国产一区91精品张津瑜| 日韩精品亚洲一区| 精品少妇一区二区三区免费观看| 国产在线精品视频| 国产精品乱码久久久久久| 91捆绑美女网站| 婷婷成人综合网| 久久久精品2019中文字幕之3| 成人av在线电影| 午夜精品福利一区二区三区蜜桃| 欧美大胆人体bbbb| 国产精品亚洲一区二区三区在线| 综合久久久久久| 欧美精品日韩精品|