• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 消費電子 > 設計應用 > 基于嵌入式微處理器S3C44B0X音頻文件播放的實現

    基于嵌入式微處理器S3C44B0X音頻文件播放的實現

    作者: 時間:2009-07-24 來源:網絡 收藏

      4.2 WAVE函數

      Playwave()函數運行前會提示先將wave下載到指定RAM區域,函數計算出大小并提示與否,最后返回.

      void Playwave (U32 addr, U32 size){

      unsigned char *pWave;

      U32 samplesize; //WAVE文件長度

      U32 save_PLLCON;

      save_PLLCON = rPLLCON;

      rPLLCON= x6912)|(0x174)|0;

      SerialChgBaud(115200);

      pISR_BDMA0=(unsigned)BDMA0_Done;

      rINTMSK=~(BIT_GLOBAL|BIT_BDMA0);//中斷設置

      pWave=(unsigned char *)addr;//wave文件數據地址

      pWave+=0x28; //指向wav采樣長度

      samplesize=*(pWave+0) | *(pWave+1)8 | *(pWave+2)16 | *(pWave+3)24;

      pWave+=4; //指向wav數據

      samplesize=(samplesize>>1)lt;1;


      printf(nsample start:0x%x,pWave);

      printf(nsamplesize:0x%x,samplesize);

      Init_4334();

      /****** IIS 初始化 ******/

      rIISCON=0x22; //使能 DMA,接收空閑,使能分頻

      rIISMOD=0x89; //主模式,IIS格式,16位數據,256fs,32 fs

      rIISPSR=0x33; //分頻因子

      rIISFCON=0xa00;//接收、發送DMA模式,使能FIFO

      /****** BDMA0 初始化******/

      rBDISRC0=(130)+(128)+(U32)pWave; //DMA源;16位數據,增長方式

      rBDIDES0=(130)+(328)+((U32)rIISFIF); //DMA目的:M2IO,內部模塊

      rBDICNT0=(130)+(126)+(322)+(121)+(020)+samplesize;

      rBDICNT0 |= (120);//設置DMA請求源為IIS,中斷方式,手動重載,使能DMA

      rBDCON0 = 0x02;

      printf(nNow play the wave file ...);

      printf(nPush any key to exit!!!);

      rIISCON |=0x1;

      while(!getkey()); //按下任意鍵返回}

      5 小結

      采用內置IIS總線和數模轉換芯片CS4334,本文搭建了以二者為核心的工作平臺,并詳細討論了此平臺WAVE音頻文件的方法.由于及CS4334模塊具有較強的通用性,因此本文給出的方法及程序具有使用簡單、運行穩定、便于移植等特點.

      本文作者創新點在于詳細設計了和CS4334的WAVE音頻文件播放平臺,融合了ARM處理器功耗小、便攜、代碼執行效率高和WAVE音頻文件音質好的優點,并給出了詳細的連接方法,所設計程序已經在硬件平臺上成功運行.

    linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 闻喜县| 富裕县| 寿阳县| 葵青区| 汪清县| 共和县| 西充县| 朝阳区| 额济纳旗| 阜城县| 邵武市| 麟游县| 钟山县| 五家渠市| 涞水县| 宁德市| 虎林市| 鸡泽县| 兰溪市| 板桥市| 扎鲁特旗| 台前县| 静海县| 呼和浩特市| 开远市| 绥棱县| 郑州市| 永泰县| 兴业县| 松溪县| 安远县| 玉山县| 阜新市| 勐海县| 张家港市| 罗城| 兴化市| 卫辉市| 乳山市| 景泰县| 平泉县|