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

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

?? audio_aic23.c

?? 數字音頻實驗測試工程
?? C
字號:
/**************************************************************程序說明      :AIC23數字音頻處理控制系統實驗類    型      :Nios II作    者      :柳軍勝公    司      :杭州自由電子科技            :http://www.freefpga.com電   話       :0571-85084089修    改      :20070110日期時間      :20060522說    明      :            FreeDev 數字應用開發板采用了TI公司的TVL320AIC23            1、控制接口使用I2C,Quartus中將CS置低(器件地址0011010)。            2、數字音頻接口使用了組件FreeDev_aic23,可實現輪訓方式讀寫,               中斷方式讀寫,錄音、和放音            3、I2C IP 和 FreeDev_aic23 IP分別在Quartus 工程目錄中**************************************************************/#include <stdio.h>#include <system.h>#include <io.h>#include <alt_types.h>#include <sys/alt_irq.h>#include <sys/alt_dma.h>#include "fast_dma.h"#include <altera_avalon_dma_regs.h>#define  AUDIO_BUFF_SIZE 0x80000extern void *dma_base;extern int gControl_bits;unsigned int infifo_count;/*********************************************函數名:audio_irq功  能:音頻中斷處理函數輸  入:context:相關內容指針,中斷號返  回: 備  注:      讀取音頻外設數據,并回放寫入到音頻外設中**********************************************/void audio_irq(void *context,alt_u32 interrupt){  unsigned int fifo_status;  unsigned int len;    fifo_status=IORD(FREEDEV_AIC23_0_BASE,0x03);  infifo_count=IORD(FREEDEV_AIC23_0_BASE,0x04);  if(fifo_status & 0x04)    len=512;  else     len=infifo_count;      // 啟動DMA傳輸  IOWR_ALTERA_AVALON_DMA_LENGTH(dma_base,len);  IOWR_ALTERA_AVALON_DMA_CONTROL(dma_base, gControl_bits|ALTERA_AVALON_DMA_CONTROL_GO_MSK);   }int main(){  FILE * hostfile ;  int iRet;  unsigned char ch;  unsigned int v1,v2,v3,v4,i;  static int irq_flag=0;  unsigned int *audioBuff=(unsigned int *)(SDRAM_BASE+0x200000);   // 初始化DMA參數  iRet=fast_dma_init(    DMA_BASE,    4,    __IO_CALC_ADDRESS_NATIVE(FREEDEV_AIC23_0_BASE, 0x07),    __IO_CALC_ADDRESS_NATIVE(FREEDEV_AIC23_0_BASE, 0x07),    512,    ALTERA_AVALON_DMA_CONTROL_RCON_MSK|ALTERA_AVALON_DMA_CONTROL_WCON_MSK);     //初始化I2C控制器  init_i2c(FREEDEV_I2C_0_BASE);    // 屏蔽音頻中斷  IOWR(FREEDEV_AIC23_0_BASE,0x02,0x03);    /* 注冊音頻中斷處理函數 */   if (alt_irq_register( FREEDEV_AIC23_0_IRQ, NULL,audio_irq))  {    printf("alt_irq_register audio_irq  error\n");    return -1;  }    // 提示菜單menu:  MenuHeader();  ch=ShowSelect( "進入測試系統? Y OR N",'y','n' );  if(ch=='n')    exit(0);    //復位音頻處理芯片  aic23_reset();    ch=ShowSelect( "需要測試模擬環路音頻處理嗎?y OR n",'y','n' );  if(ch=='y'){    // 屏蔽輸入中斷      IOWR(FREEDEV_AIC23_0_BASE,0x02,0x03);          //模擬環路測試參數設置,如需要測試模擬環路,打開下列函數注解    //模擬環路說明:模擬信號由LINE IN接入,經TLV320AIC23內部    //模擬開關短接到LINE OUT和PHONE OUT輸出    aic23_analog_bypass_test();    goto  menu;  }else{      // 屏蔽輸入中斷      IOWR(FREEDEV_AIC23_0_BASE,0x02,0x03);          //TLV320AIC23常規工作參數設置    aic23_normal_setup();      //FreeDev_aic模塊工作模式切換實驗    ch=ShowSelect( "需要測試NIOS II系統軟件輪訓方式實時采集和回放處理嗎?y OR n",'y','n' );    if(ch=='y'){      //FreeDev_aic接口模塊控制切換到DMA模式      //DMA模式說明:FreeDev_aic模塊通過TLV320AIC23的串行數字接口接收數據,變換成32BIT左右      //聲道數據,經異步FIFO送到Avalone接口端,供Nios II DMA方式讀取數據。Nios II輸出數據經      //Avalone接口寫入FIFO傳輸到并串轉換模塊,由TLV320AIC23串行數字接口輸出。      IOWR(FREEDEV_AIC23_0_BASE,0x00,0x0201);            //復位FreeDev_aic23外設FIFO      IOWR(FREEDEV_AIC23_0_BASE,0x01,0x01);      IOWR(FREEDEV_AIC23_0_BASE,0x01,0x00);            // 啟動數據接收      IOWR(FREEDEV_AIC23_0_BASE,0x01,0x02);            //循環讀入并輸出音頻信號      while(1){        //讀音頻外設狀態        v1=IORD(FREEDEV_AIC23_0_BASE,0x03);                // 輸入FIFO不為空 或 輸入FIFO為滿        if(!(v1 & 0x08) || (v1 & 0x04) )        {          v2=IORD(FREEDEV_AIC23_0_BASE,0x07);          IOWR(FREEDEV_AIC23_0_BASE,0x07,v2);        }      }    }        ch=ShowSelect( "需要測試NIOS II系統中斷方式實時采集和回放處理嗎?y OR n",'y','n' );    if(ch=='y'){      //FreeDev_aic接口模塊控制切換到DMA模式      //DMA模式說明:FreeDev_aic模塊通過TLV320AIC23的串行數字接口接收數據,變換成32BIT左右      //聲道數據,經異步FIFO送到Avalone接口端,供Nios II DMA方式讀取數據。Nios II輸出數據經      //Avalone接口寫入FIFO傳輸到并串轉換模塊,由TLV320AIC23串行數字接口輸出。      IOWR(FREEDEV_AIC23_0_BASE,0x00,0x0201);            //復位FreeDev_aic23外設      IOWR(FREEDEV_AIC23_0_BASE,0x01,0x01);      IOWR(FREEDEV_AIC23_0_BASE,0x01,0x00);            // 開放輸入中斷      IOWR(FREEDEV_AIC23_0_BASE,0x02,0x02);            // 啟動數據接收      IOWR(FREEDEV_AIC23_0_BASE,0x01,0x02);    }        ch=ShowSelect( "需要測試NIOS II系統錄音和回放處理嗎?y OR n",'y','n' );    if(ch=='y'){      IOWR(FREEDEV_AIC23_0_BASE,0x00,0x0201);            // 屏蔽輸入中斷      IOWR(FREEDEV_AIC23_0_BASE,0x02,0x03);            //復位FreeDev_aic23外設      IOWR(FREEDEV_AIC23_0_BASE,0x01,0x01);      IOWR(FREEDEV_AIC23_0_BASE,0x01,0x00);            // 啟動數據接收      IOWR(FREEDEV_AIC23_0_BASE,0x01,0x02);            for(i=0;i<AUDIO_BUFF_SIZE;)      {        //讀音頻外設狀態        v1=IORD(FREEDEV_AIC23_0_BASE,0x03);                // 輸入FIFO不為空 或 輸入FIFO為滿        if(!(v1 & 0x08) || (v1 & 0x04) )        {          audioBuff[i]=IORD(FREEDEV_AIC23_0_BASE,0x07);          IOWR(FREEDEV_AIC23_0_BASE,0x07,audioBuff[i]);          i++;        }       }            ch=ShowSelect( "播放剛才的錄音嗎?y OR n",'y','n' );      if(ch=='y'){                for(i=0;i<AUDIO_BUFF_SIZE;)        {          //讀音頻外設狀態          v1=IORD(FREEDEV_AIC23_0_BASE,0x03);                    // 輸出FIFO不為滿          if(!(v1 & 0x01))          {            IOWR(FREEDEV_AIC23_0_BASE,0x07,audioBuff[i]);            i++;          }        }        }            ch=ShowSelect( "錄音數據保存到文件audio.dat?y OR n \n 存取HOSTFS需要較長時間,請耐心等待",'y','n' );      if(ch=='y'){        // 打開主機文件        hostfile = fopen("/mnt/host/audio.dat", "w");                // 寫音頻數據        for(i=0;i<AUDIO_BUFF_SIZE;i++)        {          fwrite(audioBuff[i],4,1,hostfile);         }                  // 關閉文件        fclose(hostfile);              }    }        ch=ShowSelect( "播放音頻文件audio.dat?y OR n \n存取HOSTFS需要較長時間,請耐心等待",'y','n' );      if(ch=='y'){        // 屏蔽輸入中斷        IOWR(FREEDEV_AIC23_0_BASE,0x02,0x03);              // 打開主機文件        hostfile = fopen("/mnt/host/audio.dat", "r");                // 讀音頻數據到內存        for(i=0;i<AUDIO_BUFF_SIZE;i++)        {          fread(audioBuff[i],4,1,hostfile);         }                  // 關閉文件        fclose(hostfile);                //播放內存音頻數據        for(i=0;i<AUDIO_BUFF_SIZE;)        {          //讀音頻外設狀態          v1=IORD(FREEDEV_AIC23_0_BASE,0x03);                    // 輸出FIFO不為滿          if(!(v1 & 0x01))          {            IOWR(FREEDEV_AIC23_0_BASE,0x07,audioBuff[i]);            i++;          }        }      }    goto  menu;  }  return 0; }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品久久一线不卡| 日韩毛片一二三区| 不卡视频在线看| 男女男精品视频| 国产精品久久福利| 欧美一区二区免费视频| 99久久99久久综合| 国产一二精品视频| 午夜激情久久久| 综合久久给合久久狠狠狠97色| 日韩一区二区精品在线观看| 91蜜桃在线免费视频| 韩国av一区二区三区四区| 洋洋成人永久网站入口| 久久日韩精品一区二区五区| 欧美人成免费网站| 95精品视频在线| 夫妻av一区二区| 精品一区二区精品| 亚洲高清视频在线| 亚洲免费资源在线播放| 国产精品水嫩水嫩| 久久久精品黄色| 欧美成人高清电影在线| 7777精品伊人久久久大香线蕉 | 成人午夜视频在线观看| 美女免费视频一区| 日韩电影免费在线看| 亚洲成av人综合在线观看| 最新国产の精品合集bt伙计| 国产精品免费人成网站| 国产日韩欧美亚洲| 国产欧美一区二区精品性色 | 成人高清视频在线| 风间由美性色一区二区三区| 国产毛片精品视频| 国产精品一线二线三线| 国产一区激情在线| 久久精品国产亚洲aⅴ | 久久成人精品无人区| 亚洲韩国精品一区| 亚洲第一狼人社区| 五月开心婷婷久久| 午夜电影一区二区| 日韩国产欧美三级| 蜜臀av国产精品久久久久 | 国产精品99久久久久久久vr| 韩国av一区二区三区四区| 国内成人免费视频| 国产成人精品免费一区二区| 国产69精品久久99不卡| 国产精品一区二区久激情瑜伽| 国产一区二区91| 成人深夜在线观看| 91影院在线观看| 在线免费观看视频一区| 欧美性色欧美a在线播放| 欧美日本免费一区二区三区| 欧美一区二区高清| 久久男人中文字幕资源站| 国产日韩精品一区| 亚洲欧美日韩一区| 天天操天天综合网| 精品一二三四区| 粉嫩aⅴ一区二区三区四区五区| 粉嫩aⅴ一区二区三区四区 | 欧美日韩在线观看一区二区 | 日韩一级视频免费观看在线| 精品国产伦理网| 中文字幕在线观看一区二区| 亚洲最大色网站| 狠狠狠色丁香婷婷综合久久五月| 高清国产一区二区| 在线视频一区二区三区| 日韩你懂的在线观看| 国产精品私人自拍| 午夜精品久久久久久久99樱桃| 久久疯狂做爰流白浆xx| www.亚洲在线| 884aa四虎影成人精品一区| 国产三级欧美三级| 夜夜嗨av一区二区三区| 精品一区二区三区免费| 一本到不卡免费一区二区| 日韩一区二区视频| 国产精品国产a级| 免费欧美在线视频| av亚洲精华国产精华精华| 欧美丰满一区二区免费视频| 国产日韩欧美制服另类| 视频一区二区中文字幕| 成人精品高清在线| 欧美一区二区三区系列电影| 国产精品久久久久一区二区三区共| 亚洲一区二区视频在线观看| 久久成人18免费观看| 色哟哟一区二区| 久久男人中文字幕资源站| 亚洲国产视频网站| 国产成人精品综合在线观看| 欧美男生操女生| 国产精品久久三| 国产一区二区中文字幕| 欧美乱妇20p| 自拍偷拍国产精品| 精品一区二区三区在线观看国产| 欧美影院精品一区| 国产精品伦理一区二区| 久久99精品国产.久久久久久| 欧美亚洲国产怡红院影院| 国产精品久久久久影院亚瑟 | 国产一区二区中文字幕| 884aa四虎影成人精品一区| 亚洲美女精品一区| 国产成人精品免费网站| 精品免费国产二区三区| 日日骚欧美日韩| 欧美怡红院视频| 亚洲日本在线观看| 成人美女在线观看| 久久综合久色欧美综合狠狠| 婷婷开心久久网| 欧美综合一区二区三区| 亚洲黄一区二区三区| 成人高清av在线| 欧美国产国产综合| 国产精品一二一区| 久久无码av三级| 国产主播一区二区| 日韩美女视频在线| 美国一区二区三区在线播放| 91精品欧美福利在线观看| 视频一区二区不卡| 91精品国产高清一区二区三区 | 99久久免费国产| 国产色婷婷亚洲99精品小说| 国产伦理精品不卡| 国产欧美日韩一区二区三区在线观看| 国产综合久久久久久久久久久久| 精品国产网站在线观看| 蜜桃视频免费观看一区| 精品久久一二三区| 国产伦精品一区二区三区视频青涩| 欧美精品一区二区三区在线 | 亚洲视频一区在线| 日本乱码高清不卡字幕| 亚洲一线二线三线视频| 欧美日韩不卡视频| 午夜精品福利在线| 日韩精品在线看片z| 国产一区二区三区观看| 久久久久综合网| 成人一级黄色片| 亚洲欧美国产高清| 欧美日韩亚洲综合一区 | 国产专区欧美精品| 日本一区二区高清| 色视频成人在线观看免| 舔着乳尖日韩一区| 日韩精品专区在线影院重磅| 精品一区二区三区在线观看国产| 国产蜜臀av在线一区二区三区| av影院午夜一区| 亚洲成在线观看| 日韩欧美精品在线视频| 国产成人av电影在线| 亚洲精品免费在线播放| 在线成人午夜影院| 国产精品中文欧美| 亚洲视频图片小说| 91精品国产综合久久久蜜臀图片| 国内外成人在线| 亚洲蜜臀av乱码久久精品蜜桃| 欧美巨大另类极品videosbest | 国产精品一区在线| 伊人夜夜躁av伊人久久| 日韩欧美色电影| 91视频91自| 日韩va亚洲va欧美va久久| 国产性色一区二区| 精品视频在线免费观看| 韩国精品在线观看| 又紧又大又爽精品一区二区| 欧美成人精品3d动漫h| 91蝌蚪国产九色| 九九九精品视频| 一二三四社区欧美黄| 精品国产凹凸成av人导航| 一本色道综合亚洲| 国内精品免费在线观看| 夜夜嗨av一区二区三区四季av| 久久精品亚洲精品国产欧美kt∨ | 视频一区在线播放| 国产精品高潮呻吟| 精品国产123| 欧美性高清videossexo| 成人av中文字幕| 青青草91视频| 一区二区三区四区亚洲| 久久精品日韩一区二区三区|