第十四章-ARM9-數字音頻信號I2S介紹課件_第1頁
第十四章-ARM9-數字音頻信號I2S介紹課件_第2頁
第十四章-ARM9-數字音頻信號I2S介紹課件_第3頁
第十四章-ARM9-數字音頻信號I2S介紹課件_第4頁
第十四章-ARM9-數字音頻信號I2S介紹課件_第5頁
已閱讀5頁,還剩39頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第十四章數字音頻信號(I2S)介紹和S3C2410的I2S控制

數字音頻信號(I2S)介紹數字音頻信號是相對模擬音頻信號來說的。我們知道聲音的本質是波,人能聽到的聲音的頻率在0.02~20kHz之間。數字音頻信號是對模擬信號的一種量化(如圖14-1),典型方法是對時間坐標按相等的時間間隔做采樣,對振幅做量化。單位時間內的采樣次數稱為采樣頻率。這樣一段聲波就可以被數字化后變成一串數值,每個數值對應相應抽樣點的振幅值,按順序將這些數字排列起來就是數字音頻信號了。這是ADC(模擬-數字轉換)過程,DAC(數字-模擬轉換)過程相反,將連續的數字按采樣時候的頻率順序轉換成對應的電壓。音頻ADC/DAC通俗一點來講就是錄音(音頻ADC)和放音(音頻DAC)。放音是數字音頻信號轉換成模擬音頻信號,以驅動耳機、功放等模擬音響設備,而錄音則是要將麥克風等產生的模擬音頻信號轉換成數字音頻信號,并最終轉換成計算機可以處理的通用音頻文件格式。第十四章數字音頻信號(I2S)介紹和S3C2410的I2S1I2S總線是近年出現的一種面向多媒體計算機(MultimediaPC)的音頻總線,該總線專門用于音頻設備之間的數據傳輸,為數字立體聲提供一個連接至標準編碼解碼器的總線。S3C2410內置一個I2S總線控制器,該控制器實現了到一個外部8/16位立體聲音頻CODECIC的接口。支持I2S總線數據格式和MSB-justified數據格式。此控制器包含FIFO,支持DMA傳輸模式。I2S總線控制器結構如圖14-2所示:圖14-1模擬音頻信號數字化I2S總線是近年出現的一種面向多媒體計算機(Multimed2其中:?兩個5bit預除器(IPSR)。一個(IPSR_A)用于產生I2S總線接口的主時鐘,另外一個(IPSR_B)用作外部CODEC時鐘產生器。?十六字節FIFO。在發送數據時數據被寫進TXFIFO,在接收數據時數據從RXFIFO中讀取。?主IISCLK產生器(SCLKG):在主模式,由主時鐘產生串行移位時鐘。?通道產生器和狀態寄存器(CHNC):IISCLK和IISLRCK由通道狀態寄存器產生并控制。?16bit移位寄存器(SFTR):在發送數據時,并行數據經由SFTR變成串行數據輸出,在接收數據時,串行數據由SFTR轉變成并行數據。UDA1341是飛利浦公司的一款經濟型音頻CODEC,用于實現模擬音頻信號的采集(音頻AD)和數字音頻信號的模擬輸出(DA),并通過I2S數字音頻接口,實現音頻信號的數字化處理。圖14-2I2S總線控制器結構圖其中:圖14-2I2S總線控制器結構圖314.2I2S控制寄存器S3C2410I2S相關的寄存器包括I2S控制寄存器IISCON,I2S模式寄存器IISMOD和I2S分頻寄存器IISPSR。I2S控制寄存器及其各位的定義如表14-1和表14-2所列。表14-1I2S控制寄存器14.2I2S控制寄存器表14-1I2S控制寄存器4表14-2I2S控制寄存器IISCON各位的定義表14-2I2S控制寄存器IISCON各位的定義5表14-4I2S模式寄存器IISMOD各位的定義I2S模式寄存器及其各位的定義如表14-3和表14-4所列。表14-4I2S模式寄存器IISMOD各位的定義I2S6I2S分頻寄存器及其各位的定義如表14-5和表14-6所列。表14-6I2S分頻寄存器IISPSR各位的定義I2S分頻寄存器及其各位的定義如表14-5和表14-6所列。714.3WAV聲音格式文件WAV聲音格式文件是Windows環境下的一種常用音頻文件格式,它依循著一種稱為“資源互換文件格式”(ResourcesInterchangeFileFormal)的結構,簡稱RIFF。RIFF可以看做是一種樹狀結構,其基本構成單位為“塊”(chunk),猶如樹狀結構中的節點,每個chunk由“辨別碼”、“數據大小”及“數據”所組成。WAV為WAVEFORM(波形)的縮寫?!癛IFE”的格式辨別碼為“WAVE”。整個文件由兩個chunk所組成:辨別碼及“Data”。在“fmt”chunk下包含了一個PCMWAVEFORMAT數據結構,在其之后是原始聲音的采樣數據,這些數據是可以直接送到IIS總線的數字音頻信號。一個典型的WAV格式文件結構如圖14-3所示。14.3WAV聲音格式文件8它包含8字節RIFF頭、4字節數據類型“WAVE”、0x18字節的“fmt”chunk和4字節數據“data”chunk。因此,WAV文件中從下式中的sizeoff開始的四個字節表示聲音數據的大小,dataoff開始的位置為具體的聲音數據。sizeoff=0x8+0x4+0x18+0x4dataoff=0x8+0x4+0x18+0x8圖14-3典型的WAV格式文件結構圖它包含8字節RIFF頭、4字節數據類型“WAVE”、0x18914.4I2S控制程序編寫1,系統初始化I2S時鐘從系統時鐘分頻得到,由于音頻比系統時鐘頻率低很多,必須對系統時鐘進行適當的降頻處理,下面的代碼降系統PCLK到33MHx,然后對串口進行初始化。ChangeClockDivider(1,1)://1:2:4ChangeMPllValue(Ox96,0x5,0x1);//FCLK=135.428571MHz(PCLK=33.857142MHz)Uart_Init(33857142,115200);I2S用到的端口有G和E,所以使用這些端口前要把這些端口狀態保存起來,使用完畢再恢復這些端口原狀態。save_G=rGPGCON;save_E=rGPECON;save_PG=rGPGUP;save_PE=rGPEUP;14.4I2S控制程序編寫10I2S可以采用DMA中斷方式進行語音錄音和播放,因此需要設置DMA中斷向量。pISR_DMA2=(unsigned)DMA2_Done;然后獲取語音數據及其大小以及采樣頻率。其中__IIS_WAV__是一個數組,它定義在iis_wave.h文件中,它是從一個完整的wav文件轉換來的,因此,從中可以獲得采樣數據大小以及采樣頻率等信息,其中采樣頻率位于fmtchunk的第0x0c個字節開始的四個字節中。Buf=(unsignedchar*)__IIS_WAV__;size=*((Buf)+0x28)|*((buf)+0x29)<<8|*((buf)+0x2a)<<16|*((buf)+0x2b)<<24;fs=*((Buf)+0x28)|*((buf)+0x29)<<8|*((buf)+0x2a)<<16|*((buf)+0x2b)<<24;I2S可以采用DMA中斷方式進行語音錄音和播放,因此需要設置112,播音程序編寫:首先初始化UDA1341,設置為播音模式。Init1341(PLAY);接著進行DMA初始化。//DMA2初始化rDISRC2=(int)(buf+0x2c);rDISRCC2=(0<<1)+(0<<0);//源地址位于系統總線(AHB),地址遞增rDIDST2=((U32)IISFIFO);//IISFIFOrDIDSTC2=(1<<1)+(1<<0);//目的地址位于外設總線(APB),地址固定rDCON2=(1<<31)+(1<<30)+(1<<29)+(1<<28)+(1<<27)+(1<<24)+(1<<23)+(1<<22)+(1<<20)+(size/4);//101000001001xxxxxxxxxxxxxxxxxxxx2,播音程序編寫:12//Handshake[31],Sync,PCLK[30],CURR_TC,Interrupt,Request[29],Single,Tx[28],Single,service//I2SSD0[26:24],DMAsourceselected[23],Auto-reload[22],Half-word[21:20],size/2[19:0]rDMASKTRIG2=(0<<2)+(1<<1)+(0<<0);//No-stop[2],DMA2channelOn[1],No-swtrigger[0]然后I2S初始化并啟動I2S功能。//IISInitializeif(fs==44100)//11.2896MHz(256fs)rIISPSR=(2<<5)+2;//PrescalerA,B=2<-FCLK135.4752MHz(1:2:4)else//fs=22050,5.6448MHz(256fs)rIISPSR=(5<<5)+5;//PrescalerA,B=5<-FCLK135.4752MHz(1:2:4)//Handshake[31],Sync,PCLK[30],13rIISCON=(1<<5)+(1<<2)+(1<<1);//TxDMAenable[5],Rxidle[2],Prescaler,enable[1]//Mastermode[8],Txmode[7:6],LowforLeftChannel[5],IISformat[4],16bitch.[3],CDCLK//256fs[2].IISCLK32fs[1:0]rIISMOD=(0<<8)+(2<<6)+(0<<5)+(0<<4)+(1<<3)+(0<<2)+(1<<0);rIISFC0N=(1<<15)+(l<<l3);//TxDMA,TxFTFO-->startpiling…//IISTxStartrIISCON|=0x1;//I2S接口啟動rINTMSK&=~(BIT_DMA2);//取消DMA2中斷屏蔽,等播放完畢后DMA2中斷rIISCON=(1<<5)+(1<<2)+(1<<1);14I2S啟動后,將來用DMA中斷方式播放語音數據,播放完畢后將引發DMA2中斷,在其中斷處理函數中將dma2_done設置為非零,因此,在主程序中可以通過判斷dma2_done是否為0決定播放是否結束:dma2_done=0;while(dma2_done==0)Delay(1);dma2_done=0;PRINTF(“播放結束\n”);語音播放結束,通知I2S,并恢復寄存器設置,關閉中斷并將時鐘恢復。//IISTxStopDelay(10);//forendofH/WTxrIISCON=0x0;//I2SInterfacestoprDMASKTRIG2=(1<<2);//DMA2stoprIISFCON=0x0;sine=0;I2S啟動后,將來用DMA中斷方式播放語音數據,播放完畢后將15rGPGCON=save_G;rGPECON=save_E;rGPGUP=save_PG;rGPEUP=save_PE;rINTMSK|=(BIT_DMA2);ChangeMPllValue(0xa1,0x3,0x1);//FCLK=202.8MHzUart_Init(0,115200);mute=1;}rGPGCON=save_G;163,錄音程序編寫:錄音程序在初始化等動作上與放音類似,代碼如下所示:voidRecord_Iis(void){unsignedintsave_G,save_E,save_PG,save_PE;Uart_TxEmpty(0):ChangeClockDivider(1,1);//1:2:4ChangeMP11Value(0x96,0x5,0x1);//FCLK=135428571Hz,PCLK=3.385714MHzUart_Init(33857142,115200);PRINTF(“----------錄音測試---------\n”);PRINTF("[1]請接上耳機和麥克風\n");save_G=rGPGCON;save_E=rGPECON;save_P}=rGPGUP;save_PG=rGPEUP;IIS_portSetting();3,錄音程序編寫:17錄制的聲音數據保存與rec_buf中,錄制長度為REC_LEN://RecordBufinitialize,Non-cacheablearea=0x31000000~0x33feffffrec_buf=(unsignedshort*)0x31000000;pISR_BMA2=(unsigned}DMA2_Rec_Dane;rINTMSK&=~(BIT_DMA2);Init1341(RECORD);//----DMA2InitializerDISRCC2=(1<<1)+(1<<0};//APB,FixrDISRC2=((U32)IISFIF0);//IISFIF0rDIDSTC2=(0<<1)+(0<<0)//PHB,IncrementRdidst2=(int}rec_buf;//0x31000000~

錄制的聲音數據保存與rec_buf中,錄制長度為REC_L18rDCON2=(1<<31)+(0<<30)+(1<<29)+(0<<28)+(0<<27)+(1<<24)+(1<<23)+(1<<22)+(1<<20)+REC_LEN;//Handshake,syncPCLK,TCint,singletx,singleservice,12SSDI,I2SRxrequest,//Off-reload,half-word,0x50000halfword.rDMASKTRIG2=(0<<2)+(1<<1)+0;//No-stop,DMA2channelon,No-swtrigger,//IISTnitialize,Master,Rx,L-ch=low,IIS,l6bitch,CDCLK=256fs,IISCLrDCON2=19rIISMOD=(0<<8)+(1<<6)+(1<<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.lKHzrIISCON=(0<<5)+(1<<4)+(1<<3)+(0<<2)+(1<<1);//TxDMAdisable,RxDMAenable,Txidle,Rxnotidle,prescalerenable,stoprIISFCON=(1<<14)+(1<<12);//RxDMA,RxFIF0一>startpiling…開始錄音:PRINTF("[2]開始錄音﹍\n");//RxstartrIISCON∣=0xl;錄音完畢將引發DMA2中斷,如下代碼等待錄音結束:

rIISMOD=(0<<8)+(1<<6)+(1<<5)+20While(!Rec_Done)Delay(1);rINTMSK∣=BIT_DMA2;Rec_Done=0;PRINTF(“錄音完畢\n”);//IISStopDelay(10);//ForendofH/WRxrIISCON=0x0;//IISstoprDMASKTRIG2=(1<<2);//DMA2stoprIISFCON=0x0;//ForFIF0flushWhile(!Rec_Done)Delay(1);21第十四章習題和練習1,簡單回答什么是數字音頻的采樣頻率和采樣精度?數字音頻的編碼有幾種?數字音頻控制寄存器有幾個?各有什么作用?簡單說明音頻芯片UDA1341的使用。IIS使用系統時鐘為什么要降頻?IIS使用系統哪幾個I/O口?IIS使用DMA中斷,如何設置DMA中斷向量?如何進行DMA初始化?如何進行IIS初始化和使能IIS?10,仔細閱讀例子程序,學會IIS錄音和放音程序編寫。第十四章習題和練習22第十四章數字音頻信號(I2S)介紹和S3C2410的I2S控制

數字音頻信號(I2S)介紹數字音頻信號是相對模擬音頻信號來說的。我們知道聲音的本質是波,人能聽到的聲音的頻率在0.02~20kHz之間。數字音頻信號是對模擬信號的一種量化(如圖14-1),典型方法是對時間坐標按相等的時間間隔做采樣,對振幅做量化。單位時間內的采樣次數稱為采樣頻率。這樣一段聲波就可以被數字化后變成一串數值,每個數值對應相應抽樣點的振幅值,按順序將這些數字排列起來就是數字音頻信號了。這是ADC(模擬-數字轉換)過程,DAC(數字-模擬轉換)過程相反,將連續的數字按采樣時候的頻率順序轉換成對應的電壓。音頻ADC/DAC通俗一點來講就是錄音(音頻ADC)和放音(音頻DAC)。放音是數字音頻信號轉換成模擬音頻信號,以驅動耳機、功放等模擬音響設備,而錄音則是要將麥克風等產生的模擬音頻信號轉換成數字音頻信號,并最終轉換成計算機可以處理的通用音頻文件格式。第十四章數字音頻信號(I2S)介紹和S3C2410的I2S23I2S總線是近年出現的一種面向多媒體計算機(MultimediaPC)的音頻總線,該總線專門用于音頻設備之間的數據傳輸,為數字立體聲提供一個連接至標準編碼解碼器的總線。S3C2410內置一個I2S總線控制器,該控制器實現了到一個外部8/16位立體聲音頻CODECIC的接口。支持I2S總線數據格式和MSB-justified數據格式。此控制器包含FIFO,支持DMA傳輸模式。I2S總線控制器結構如圖14-2所示:圖14-1模擬音頻信號數字化I2S總線是近年出現的一種面向多媒體計算機(Multimed24其中:?兩個5bit預除器(IPSR)。一個(IPSR_A)用于產生I2S總線接口的主時鐘,另外一個(IPSR_B)用作外部CODEC時鐘產生器。?十六字節FIFO。在發送數據時數據被寫進TXFIFO,在接收數據時數據從RXFIFO中讀取。?主IISCLK產生器(SCLKG):在主模式,由主時鐘產生串行移位時鐘。?通道產生器和狀態寄存器(CHNC):IISCLK和IISLRCK由通道狀態寄存器產生并控制。?16bit移位寄存器(SFTR):在發送數據時,并行數據經由SFTR變成串行數據輸出,在接收數據時,串行數據由SFTR轉變成并行數據。UDA1341是飛利浦公司的一款經濟型音頻CODEC,用于實現模擬音頻信號的采集(音頻AD)和數字音頻信號的模擬輸出(DA),并通過I2S數字音頻接口,實現音頻信號的數字化處理。圖14-2I2S總線控制器結構圖其中:圖14-2I2S總線控制器結構圖2514.2I2S控制寄存器S3C2410I2S相關的寄存器包括I2S控制寄存器IISCON,I2S模式寄存器IISMOD和I2S分頻寄存器IISPSR。I2S控制寄存器及其各位的定義如表14-1和表14-2所列。表14-1I2S控制寄存器14.2I2S控制寄存器表14-1I2S控制寄存器26表14-2I2S控制寄存器IISCON各位的定義表14-2I2S控制寄存器IISCON各位的定義27表14-4I2S模式寄存器IISMOD各位的定義I2S模式寄存器及其各位的定義如表14-3和表14-4所列。表14-4I2S模式寄存器IISMOD各位的定義I2S28I2S分頻寄存器及其各位的定義如表14-5和表14-6所列。表14-6I2S分頻寄存器IISPSR各位的定義I2S分頻寄存器及其各位的定義如表14-5和表14-6所列。2914.3WAV聲音格式文件WAV聲音格式文件是Windows環境下的一種常用音頻文件格式,它依循著一種稱為“資源互換文件格式”(ResourcesInterchangeFileFormal)的結構,簡稱RIFF。RIFF可以看做是一種樹狀結構,其基本構成單位為“塊”(chunk),猶如樹狀結構中的節點,每個chunk由“辨別碼”、“數據大小”及“數據”所組成。WAV為WAVEFORM(波形)的縮寫?!癛IFE”的格式辨別碼為“WAVE”。整個文件由兩個chunk所組成:辨別碼及“Data”。在“fmt”chunk下包含了一個PCMWAVEFORMAT數據結構,在其之后是原始聲音的采樣數據,這些數據是可以直接送到IIS總線的數字音頻信號。一個典型的WAV格式文件結構如圖14-3所示。14.3WAV聲音格式文件30它包含8字節RIFF頭、4字節數據類型“WAVE”、0x18字節的“fmt”chunk和4字節數據“data”chunk。因此,WAV文件中從下式中的sizeoff開始的四個字節表示聲音數據的大小,dataoff開始的位置為具體的聲音數據。sizeoff=0x8+0x4+0x18+0x4dataoff=0x8+0x4+0x18+0x8圖14-3典型的WAV格式文件結構圖它包含8字節RIFF頭、4字節數據類型“WAVE”、0x183114.4I2S控制程序編寫1,系統初始化I2S時鐘從系統時鐘分頻得到,由于音頻比系統時鐘頻率低很多,必須對系統時鐘進行適當的降頻處理,下面的代碼降系統PCLK到33MHx,然后對串口進行初始化。ChangeClockDivider(1,1)://1:2:4ChangeMPllValue(Ox96,0x5,0x1);//FCLK=135.428571MHz(PCLK=33.857142MHz)Uart_Init(33857142,115200);I2S用到的端口有G和E,所以使用這些端口前要把這些端口狀態保存起來,使用完畢再恢復這些端口原狀態。save_G=rGPGCON;save_E=rGPECON;save_PG=rGPGUP;save_PE=rGPEUP;14.4I2S控制程序編寫32I2S可以采用DMA中斷方式進行語音錄音和播放,因此需要設置DMA中斷向量。pISR_DMA2=(unsigned)DMA2_Done;然后獲取語音數據及其大小以及采樣頻率。其中__IIS_WAV__是一個數組,它定義在iis_wave.h文件中,它是從一個完整的wav文件轉換來的,因此,從中可以獲得采樣數據大小以及采樣頻率等信息,其中采樣頻率位于fmtchunk的第0x0c個字節開始的四個字節中。Buf=(unsignedchar*)__IIS_WAV__;size=*((Buf)+0x28)|*((buf)+0x29)<<8|*((buf)+0x2a)<<16|*((buf)+0x2b)<<24;fs=*((Buf)+0x28)|*((buf)+0x29)<<8|*((buf)+0x2a)<<16|*((buf)+0x2b)<<24;I2S可以采用DMA中斷方式進行語音錄音和播放,因此需要設置332,播音程序編寫:首先初始化UDA1341,設置為播音模式。Init1341(PLAY);接著進行DMA初始化。//DMA2初始化rDISRC2=(int)(buf+0x2c);rDISRCC2=(0<<1)+(0<<0);//源地址位于系統總線(AHB),地址遞增rDIDST2=((U32)IISFIFO);//IISFIFOrDIDSTC2=(1<<1)+(1<<0);//目的地址位于外設總線(APB),地址固定rDCON2=(1<<31)+(1<<30)+(1<<29)+(1<<28)+(1<<27)+(1<<24)+(1<<23)+(1<<22)+(1<<20)+(size/4);//101000001001xxxxxxxxxxxxxxxxxxxx2,播音程序編寫:34//Handshake[31],Sync,PCLK[30],CURR_TC,Interrupt,Request[29],Single,Tx[28],Single,service//I2SSD0[26:24],DMAsourceselected[23],Auto-reload[22],Half-word[21:20],size/2[19:0]rDMASKTRIG2=(0<<2)+(1<<1)+(0<<0);//No-stop[2],DMA2channelOn[1],No-swtrigger[0]然后I2S初始化并啟動I2S功能。//IISInitializeif(fs==44100)//11.2896MHz(256fs)rIISPSR=(2<<5)+2;//PrescalerA,B=2<-FCLK135.4752MHz(1:2:4)else//fs=22050,5.6448MHz(256fs)rIISPSR=(5<<5)+5;//PrescalerA,B=5<-FCLK135.4752MHz(1:2:4)//Handshake[31],Sync,PCLK[30],35rIISCON=(1<<5)+(1<<2)+(1<<1);//TxDMAenable[5],Rxidle[2],Prescaler,enable[1]//Mastermode[8],Txmode[7:6],LowforLeftChannel[5],IISformat[4],16bitch.[3],CDCLK//256fs[2].IISCLK32fs[1:0]rIISMOD=(0<<8)+(2<<6)+(0<<5)+(0<<4)+(1<<3)+(0<<2)+(1<<0);rIISFC0N=(1<<15)+(l<<l3);//TxDMA,TxFTFO-->startpiling…//IISTxStartrIISCON|=0x1;//I2S接口啟動rINTMSK&=~(BIT_DMA2);//取消DMA2中斷屏蔽,等播放完畢后DMA2中斷rIISCON=(1<<5)+(1<<2)+(1<<1);36I2S啟動后,將來用DMA中斷方式播放語音數據,播放完畢后將引發DMA2中斷,在其中斷處理函數中將dma2_done設置為非零,因此,在主程序中可以通過判斷dma2_done是否為0決定播放是否結束:dma2_done=0;while(dma2_done==0)Delay(1);dma2_done=0;PRINTF(“播放結束\n”);語音播放結束,通知I2S,并恢復寄存器設置,關閉中斷并將時鐘恢復。//IISTxStopDelay(10);//forendofH/WTxrIISCON=0x0;//I2SInterfacestoprDMASKTRIG2=(1<<2);//DMA2stoprIISFCON=0x0;sine=0;I2S啟動后,將來用DMA中斷方式播放語音數據,播放完畢后將37rGPGCON=save_G;rGPECON=save_E;rGPGUP=save_PG;rGPEUP=save_PE;rINTMSK|=(BIT_DMA2);ChangeMPllValue(0xa1,0x3,0x1);//FCLK=202.8MHzUart_Init(0,115200);mute=1;}rGPGCON=save_G;383,錄音程序編寫:錄音程序在初始化等動作上與放音類似,代碼如下所示:voidRecord_Iis(void){unsignedintsave_G,save_E,save_PG,save_PE;Uart_TxEmpty(0):ChangeClockDivider(1,1);//1:2:4ChangeMP11Value(0x96,0x5,0x1);//FCLK=135428571Hz,PCLK=3.385714MHzUart_Init(33857142,115200);PRINTF(“----------錄音測試---------\n”);PRINTF("[1]請接上耳機和麥克風\n");save_G=rGPGCON;save_E=rGPECON;save_P}=rGPGUP;save_PG=rGPEUP;IIS_portSetting();3,錄音程序編寫:39錄制的聲音數據保存與rec_buf中,錄制長度為REC_LEN://RecordBufinitialize,Non-cacheablearea=0x31000000~0x33feffffrec_buf=(unsignedshort*)0x31000000;pISR_BMA2=(unsigned}DMA2_Rec_Dane;rINTMSK&=~(BIT_DMA2);Init1341(RECORD);//----DMA2InitializerDISRCC2=(1<<1)+(1<<0};//APB,FixrDISRC2=((U32)IISFIF0);//IISFIF0rDIDSTC2=(0<<1)+(0<<0)//PHB,IncrementRdidst2=(int}rec_buf;//

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論