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

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

?? audio_44b0x.c

?? 基于s3c44b0x(ARM7)的實現mp3播放功能的MP3DECODETEST.rar
?? C
字號:
#include "44b.h"
#include "def.h"
#include "iis.h"
#include "isr.h"

enum audio_command {
  AUDIO_COMMAND_INIT,
  AUDIO_COMMAND_CONFIG,
  AUDIO_COMMAND_PLAY,
  AUDIO_COMMAND_STOP,
  AUDIO_COMMAND_FINISH
};

struct audio_config {
    enum audio_command command;
    unsigned int channels;
    unsigned int speed;
  } ;
  
enum audio_mode {
  AUDIO_MODE_ROUND,
  AUDIO_MODE_DITHER
};  
  
struct audio_play 
  {
    enum audio_command command;
    unsigned int nsamples;
    signed int const *samples[2];
    enum audio_mode mode;
    struct audio_stats *stats;
  };  

# define MAX_NSAMPLES	(1152 * 3)	/* allow for resampled frame */

static int opened;

# define NSLOTS		25	/* 大約2秒鐘數據 (44.1 kHz) */
# define NBUFFERS	 3	/* 3個緩沖區 */

static struct buffer {
  int speed;
  volatile int playing;
  unsigned int pcm_length;
  unsigned char pcm_data[NSLOTS * MAX_NSAMPLES * 2 * 2];
} output[NBUFFERS];

static int bindex;         //要填入數據的緩沖數據索引 0->1->2->0->1....
static int playing_index;  //正在播放的緩沖數據索引0->1->2->0->1....

static c_speed=44100;

int save_intmsk;

//BDMA0中斷服務程序
void mp3BDMA0_Done(void)
{
     rI_ISPC=BIT_BDMA0;	//clear pending bit

     output[playing_index].pcm_length=0;	//本緩沖區長度設為0
     output[playing_index].playing=0;		//清除本緩沖區播放標志,以便裝放新的數據
     playing_index=(playing_index + 1) % NBUFFERS;	//指到下一個緩沖區
     
     if(output[playing_index].playing==0){rBDICNT0 |= (0<<20);opened=0;return;} //如果沒有數據,輸出'B'

	 rBDICNT0=(1<<30)+(1<<26)+(3<<22)+(1<<21)+(0<<20)+output[playing_index].pcm_length;   //要播放的長度
        
  	 rBDISRC0=(1<<30)+(1<<28)+(U32)output[playing_index].pcm_data;	//Half word,inc,pWave //把下一個緩沖區地址給BDMA0
	   
     rBDICNT0 |= (1<<20);//enable 
     
}

//======================================================
/********  該函數由解碼函數調用   ********/
int mp3_finish()
{  

    rIISCON=0x0;    //IIS stop
    rBDICNT0=0x0;   //BDMA stop    
    
    rINTMSK=save_intmsk | BIT_BDMA0;  //禁止BDMA中斷

  return 0;
}
//======================================================
/********  該函數由解碼函數調用   ********/

int mp3_stop()
{	
  int i;
 
  rBDICNT0 &=0xffefffff;	//BDMA stop  
  
  opened = 0;  

  for (i = 0; i < NBUFFERS; ++i) 
  {

    output[i].playing    = 0;
    output[i].pcm_length = 0;
  }

  bindex = 0;
  playing_index=0;

  return 0;
}
//***************************************************************************

/********  播放及硬件相關初始化函數   ********/
int init(struct audio_init *init)
{
  
  int i;
  /********  初始化解碼后數據緩沖區   ********/
  opened = 0;
  
  for (i = 0; i < NBUFFERS; ++i) 
  {
    output[i].playing    = 0;
    output[i].pcm_length = 0;
  }

  bindex = 0;
  playing_index=0;
  
  /********  初始化中斷配置   ********/  
   
  INTS_OFF();       //Disable interrupt in PSR  
  SetISR_Interrupt(INT_BDMA0_OFFSET, mp3BDMA0_Done,0);
  Open_INT_GLOBAL();
  Open_INT(BIT_BDMA0);
  INTS_ON();        //Enable interrupt in PSR     
	
  save_intmsk=rINTMSK;		//保存中斷使能

  rIISCON=0;	     //disable;
  /****** IIS 配置的初始化 ******/
  rIISCON=0x03;	//Tx DMA enable,Rx idle,prescaler enable
  rIISMOD=0x8d;	//Master,Tx,L-ch=low,iis,16bit ch.,codeclk=256fs,lrck=32fs
  rIISPSR=0x11;	//Prescaler_A/B enable, value=1
    
  rIISFCON=0xa00;	//Tx/Rx DMA,Tx/Rx FIFO --> start piling....

  /********  初始化音頻D/A   ********/
  Init_UDA1341();     //初始化UDA1341
    
  return 0;
}

//======================================================
int config(struct audio_config *config)
{

  c_speed=config->speed;   //  
  
  return 0;
}
//======================================================
/********  IIS和BDMA0配置初始化函數   ********/
void write_dev()
{
  output[bindex].playing=1;
  
  if(opened==0)   //如果第一次播放,初始化BDMA
   {
    opened=1;
    playing_index=bindex;
    
    rBDISRC0=(1<<30)+(1<<28)+(U32)output[playing_index].pcm_data;	//Half word,inc,pWave
    rBDIDES0=(1<<30)+(3<<28)+((U32)rIISFIF);	//M2IO,fix,IISFIF
		
    rBDICNT0=(1<<30)+(1<<26)+(3<<22)+(1<<21)+(0<<20)+output[playing_index].pcm_length;
    rBDICNT0 |= (1<<20);//enable
    rBDCON0 = 0x0<<2;
    rIISCON |=0x1;
  
   	rIISCON  |= 0x20;   //Tx DMA 

   }
}
//======================================================

//解碼部分調用該函數進行數據播放
int play(struct audio_play *play)
{
  struct buffer *buffer;
  unsigned int len;

  buffer = &output[bindex];
     
  while(buffer->playing==1);

  /* prepare block */
  
  buffer->speed=c_speed;  

  //回調庫函數
  len = audio_pcm_s16le(&buffer->pcm_data[buffer->pcm_length], play->nsamples,
			play->samples[0], play->samples[1], play->mode,	play->stats);

  buffer->pcm_length += len;

  if (buffer->pcm_length + MAX_NSAMPLES * 2 * 2 > sizeof(buffer->pcm_data))
  {
    write_dev();
    bindex = (bindex + 1) % NBUFFERS;    
  }

  return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美另类久久久精品| 久久99日本精品| 男人的天堂亚洲一区| 国产很黄免费观看久久| 91国产免费看| 国产无一区二区| 视频一区欧美精品| av一区二区久久| www国产成人免费观看视频 深夜成人网 | bt欧美亚洲午夜电影天堂| 91.com视频| 亚洲另类在线视频| 成人国产精品免费观看动漫| 日韩视频永久免费| 亚洲一二三四久久| 99这里都是精品| 国产视频一区二区三区在线观看| 日韩高清在线不卡| 欧美日韩精品三区| 亚洲国产精品嫩草影院| 91麻豆精品一区二区三区| 国产欧美精品一区二区三区四区| 久久99这里只有精品| 欧美一区二区三区视频| 亚洲一区成人在线| 91福利资源站| 一区二区成人在线| 欧美专区日韩专区| 一区二区三区国产精品| 色综合久久综合网| 亚洲欧美日韩国产一区二区三区| 成人永久免费视频| 欧美激情综合五月色丁香 | 男女激情视频一区| 欧美军同video69gay| 夜夜精品浪潮av一区二区三区| 成人黄色电影在线| 一区二区三区在线影院| 在线观看成人小视频| 亚洲线精品一区二区三区| 欧美中文字幕不卡| 亚洲一区二区三区爽爽爽爽爽| 欧美性感一类影片在线播放| 亚洲一区在线电影| 欧美三级在线视频| 一区二区三区.www| 欧美日韩高清一区二区| 午夜精品福利一区二区蜜股av| 欧美三级三级三级| 久久激情五月激情| 亚洲国产激情av| 国产成人在线观看| 最新日韩av在线| 欧美特级限制片免费在线观看| 首页国产丝袜综合| 欧美videofree性高清杂交| 久草在线在线精品观看| 国产情人综合久久777777| 波多野结衣的一区二区三区| 一区二区三区不卡在线观看 | 日韩视频免费观看高清在线视频| 久久狠狠亚洲综合| 1区2区3区欧美| 日韩午夜小视频| 成人中文字幕合集| 午夜日韩在线观看| 国产亚洲欧美激情| 欧美日韩亚洲综合在线| 国模大尺度一区二区三区| 亚洲欧洲精品一区二区三区| 777精品伊人久久久久大香线蕉| 国产一区福利在线| 亚洲一区二区三区美女| 久久综合av免费| 欧美丝袜第三区| 国产成人精品免费网站| 日日摸夜夜添夜夜添亚洲女人| 国产网站一区二区| 宅男在线国产精品| 色狠狠综合天天综合综合| 激情丁香综合五月| 亚洲一区在线观看视频| 日本一区二区免费在线观看视频| 欧美日韩一级黄| 99久久伊人精品| 国产一区三区三区| 日韩中文字幕一区二区三区| 国产精品乱码妇女bbbb| 日韩欧美综合一区| 欧美三级日韩在线| 91麻豆自制传媒国产之光| 国产精品自拍在线| 日本欧美一区二区在线观看| 亚洲美女视频在线观看| 日本一区二区高清| 久久亚洲精品国产精品紫薇| 在线播放一区二区三区| 一本到不卡免费一区二区| 丁香婷婷综合五月| 国产精品中文有码| 久久国产精品色婷婷| 首页综合国产亚洲丝袜| 午夜伊人狠狠久久| 一区二区三区在线视频播放| 一区在线播放视频| 国产精品不卡一区| 中文字幕一区日韩精品欧美| 国产精品青草久久| 中文字幕一区在线| 亚洲视频网在线直播| 亚洲美女淫视频| 亚洲综合免费观看高清在线观看| 日韩毛片视频在线看| 中文字幕亚洲不卡| 国产精品久久精品日日| 亚洲视频综合在线| 亚洲综合在线免费观看| 一个色妞综合视频在线观看| 亚洲一区在线看| 天天免费综合色| 五月激情丁香一区二区三区| 日日摸夜夜添夜夜添精品视频| 日韩av一级电影| 精品一区二区三区免费播放 | 中国av一区二区三区| 欧美经典一区二区| 亚洲免费成人av| 亚洲地区一二三色| 久久超碰97人人做人人爱| 国产中文字幕精品| 99久久婷婷国产综合精品电影| 91精品福利视频| 制服丝袜中文字幕亚洲| 久久伊99综合婷婷久久伊| 国产精品无遮挡| 亚洲天堂成人在线观看| 亚洲成av人片一区二区三区| 老司机午夜精品99久久| 国产成人在线观看免费网站| 91福利区一区二区三区| 日韩一区二区三| 国产精品久久久久久久久久免费看 | 91福利社在线观看| 91精品国产色综合久久久蜜香臀| 337p粉嫩大胆色噜噜噜噜亚洲| 中文字幕欧美国产| 亚洲综合999| 精品中文字幕一区二区小辣椒| 成人小视频在线| 欧美精品精品一区| 中文无字幕一区二区三区| 亚洲电影你懂得| 高清日韩电视剧大全免费| 欧美日韩视频在线第一区 | 国产一区二区三区久久悠悠色av| 99久久99久久综合| 欧美白人最猛性xxxxx69交| 亚洲视频一区在线| 狠狠色丁香久久婷婷综合_中| 色伊人久久综合中文字幕| 精品久久人人做人人爰| 亚洲午夜免费视频| 国产成人在线影院| 制服丝袜国产精品| 1区2区3区欧美| 国产精品一级二级三级| 91精品国产欧美一区二区成人 | 免费观看久久久4p| 91蝌蚪porny| 久久夜色精品一区| 亚洲成av人片一区二区| av在线不卡电影| 久久久久久久久久久99999| 亚洲伊人伊色伊影伊综合网| 成人一区二区视频| 精品国精品国产尤物美女| 亚洲高清在线精品| 91美女福利视频| 成人免费一区二区三区视频 | 久久精品国产色蜜蜜麻豆| 欧美性猛交xxxx乱大交退制版 | 久久9热精品视频| 欧美日韩情趣电影| 亚洲黄色片在线观看| 97精品久久久午夜一区二区三区 | 欧美不卡123| 日韩成人午夜精品| 欧美三级电影在线看| 亚洲综合一二三区| 一本色道久久综合狠狠躁的推荐 | 秋霞成人午夜伦在线观看| 欧美日韩一区视频| 一区二区三区四区不卡视频| 99热在这里有精品免费| 国产精品国产三级国产aⅴ入口 | 奇米888四色在线精品| 91精品国产欧美一区二区18 | 五月综合激情婷婷六月色窝| 在线视频你懂得一区| 一区二区三区 在线观看视频|