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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? aic23.c

?? 這是一個G.711在DSP上運(yùn)行的程序.已經(jīng)通過調(diào)試
?? C
字號:
#include "5502.h"
#include "util.h"
#include "extaddr.h"
#include "math.h"

// AIC23 Control Register addresses
#define AIC23_LT_LINE_CTL         0x00  // 0
#define AIC23_RT_LINE_CTL         0x02  // 1
#define AIC23_LT_HP_CTL           0x04  // 2
#define AIC23_RT_HP_CTL           0x06  // 3
#define AIC23_ANALOG_AUDIO_CTL    0x08  // 4
#define AIC23_DIGITAL_AUDIO_CTL   0x0A  // 5
#define AIC23_POWER_DOWN_CTL      0x0C  // 6
#define AIC23_DIGITAL_IF_FORMAT   0x0E  // 7
#define AIC23_SAMPLE_RATE_CTL     0x10  // 8
#define AIC23_DIG_IF_ACTIVATE     0x12  // 9
#define AIC23_RESET_REG           0x1E  // F - Writing 0 to this reg triggers reset

// AIC23 Control Register settings
#define lt_ch_vol_ctrl       0x0017   /* 0  */
#define rt_ch_vol_ctrl       0x0017   /* 1  */
#define lt_ch_headph_ctrl    0x0079   /* 2  */
#define rt_ch_headph_ctrl    0x0079   /* 3  */
#define alog_au_path_ctrl    0x0000   /* 4  */
#define digi_au_path_ctrl    0x0000   /* 5  */
#define pow_mgt_ctrl_ctrl    0x0002   /* 6  */
#define digi_au_intf_ctrl    0x000D   /* 7  */
#define au_FS_TIM_ctrl       0x0000   /* 8 MCLK=12MHz, Sample Rate setting */
#define digi_intf1_ctrl      0x0001   /* 9  */
#define digi_intf2_ctrl      0x00FF   /* 10 */

#define DIGIF_FMT_MS              0x40
#define DIGIF_FMT_LRSWAP          0x20
#define DIGIF_FMT_LRP             0x10
#define DIGIF_FMT_IWL             0x0c
#define DIGIF_FMT_FOR             0x03

#define DIGIF_FMT_IWL_16          0x00
#define DIGIF_FMT_IWL_20          0x04
#define DIGIF_FMT_IWL_24          0x08
#define DIGIF_FMT_IWL_32          0xc0

#define DIGIF_FMT_FOR_MSBRIGHT    0x00
#define DIGIF_FMT_FOR_MSLEFT      0x01
#define DIGIF_FMT_FOR_I2S         0x02
#define DIGIF_FMT_FOR_DSP         0x03

#define POWER_DEV                 0x80
#define POWER_CLK                 0x40
#define POWER_OSC                 0x20
#define POWER_OUT                 0x10
#define POWER_DAC                 0x08
#define POWER_ADC                 0x04
#define POWER_MIC                 0x02
#define POWER_LINE                0x01

#define SRC_CLKOUT                0x80
#define SRC_CLKIN                 0x40
#define SRC_SR                    0x3c
#define SRC_BOSR                  0x02
#define SRC_MO                    0x01

#define SRC_SR_44                 0x20
#define SRC_SR_32                 0x18

#define ANAPCTL_STA               0xc0
#define ANAPCTL_STE               0x20
#define ANAPCTL_DAC               0x10
#define ANAPCTL_BYP               0x08
#define ANAPCTL_INSEL             0x04
#define ANAPCTL_MICM              0x02
#define ANAPCTL_MICB              0x01    

#define DIGPCTL_DACM              0x08
#define DIGPCTL_DEEMP             0x06
#define DIGPCTL_ADCHP             0x01
#define DIGPCTL_DEEMP_DIS         0x00
#define DIGPCTL_DEEMP_32          0x02
#define DIGPCTL_DEEMP_44          0x04
#define DIGPCRL_DEEMP_48          0x06

#define DIGIFACT_ACT              0x01

#define LT_HP_CTL_LZC             0x80
#define RT_HP_CTL_RZC             0x80

void AIC23_Write(unsigned short regaddr, unsigned short data)
{
    unsigned char buf[2];
    buf[0] = regaddr;
    buf[1] = data;
    I2C_Write(I2C_AIC23, 2, buf);
}

void McBSP0_InitSlave()
{
    PC55XX_MCSP pMCBSP0 = (PC55XX_MCSP)C55XX_MSP0_ADDR;
    
    // Put the MCBSP in reset
    Write(pMCBSP0 -> spcr1, 0);
    Write(pMCBSP0 -> spcr2, 0);
       
    // Config frame parameters (32 bit, single phase, no delay)
    Write(pMCBSP0 -> xcr1, XWDLEN1_32);
    Write(pMCBSP0 -> xcr2, XPHASE_SINGLE | XDATDLY_0);
    Write(pMCBSP0 -> rcr1, RWDLEN1_32);
    Write(pMCBSP0 -> rcr2, RPHASE_SINGLE | RDATDLY_0);

    // Disable int frame generation and enable slave w/ext frame signals on FSX
    // Frame sync is active high, data clocked on rising edge of clkx
    Write(pMCBSP0 -> pcr, PCR_CLKXP);

    // Bring transmitter and receiver out of reset
    SetMask(pMCBSP0 -> spcr2, SPCR2_XRST);
    SetMask(pMCBSP0 -> spcr1, SPCR1_RRST);    
}

void AIC23_Init()
{
    I2C_Init();
   
    // Reset the AIC23 and turn on all power
    AIC23_Write(AIC23_RESET_REG, 0);
    AIC23_Write(AIC23_POWER_DOWN_CTL, 0);    
    AIC23_Write(AIC23_ANALOG_AUDIO_CTL, ANAPCTL_DAC | ANAPCTL_INSEL);
    AIC23_Write(AIC23_DIGITAL_AUDIO_CTL, 0);
    
    // Turn on volume for line inputs
    AIC23_Write(AIC23_LT_LINE_CTL,0x01f);
    AIC23_Write(AIC23_RT_LINE_CTL,0x01f);

    // Configure the AIC23 for master mode, 44.1KHz stereo, 16 bit samples
    // Use 12MHz USB clock
    AIC23_Write(AIC23_DIGITAL_IF_FORMAT, DIGIF_FMT_MS | DIGIF_FMT_IWL_16 | DIGIF_FMT_FOR_DSP);
    AIC23_Write(AIC23_SAMPLE_RATE_CTL, SRC_SR_44 | SRC_BOSR | SRC_MO);

    // Turn on headphone volume and digital interface
    AIC23_Write(AIC23_LT_HP_CTL, 0x07f);  // 0x79 for speakers
    AIC23_Write(AIC23_RT_HP_CTL, 0x07f);
    AIC23_Write(AIC23_DIG_IF_ACTIVATE, DIGIFACT_ACT);

    // Set McBSP0 to be transmit slave
    McBSP0_InitSlave();
}

void AIC23_Disable()
{
    PC55XX_MCSP pMCBSP0 = (PC55XX_MCSP)C55XX_MSP0_ADDR;
    I2C_Disable();
    
    // Put the MCBSP in reset
    Write(pMCBSP0 -> spcr1, 0);
    Write(pMCBSP0 -> spcr2, 0);
}

#define AUDIODATA 0x0d000
int *pAudio;
unsigned int G711ALawEncode(int nLeft,int nRight);
unsigned char IntToALaw(int nInput);
int ALawToInt(unsigned char nInput);
    
void AIC23_Mixer()
{
    PC55XX_MCSP pMCBSP0 = (PC55XX_MCSP)C55XX_MSP0_ADDR;
    int left, right,bCodec;
    int *pWork,nAudioCount;
    int i;
    unsigned int uWork;
    unsigned char cWork;
    
	bCodec=0;
	pAudio=pWork=(int *)AUDIODATA;
	nAudioCount=0;
    for ( i=0;i<1024;i++,pWork++ ) (*pWork)=0;
    pWork=pAudio;
    while ( 1 )
    {
        while (!ReadMask(pMCBSP0 -> spcr2, SPCR2_XRDY));	// 等待數(shù)據(jù)傳輸完成

        left = Read(pMCBSP0 -> ddr1);	// 讀入左聲道數(shù)據(jù)
        right = Read(pMCBSP0 -> ddr2);	// 讀入右聲道數(shù)據(jù)
        left*=2;
        right*=2;
        if ( bCodec )
        {
        	uWork=G711ALawEncode(left,right);
        	(*pWork)=uWork;
        	cWork=uWork>>8;
        	left=ALawToInt(cWork);
        	cWork=uWork&0x0ff;
        	right=ALawToInt(cWork);
		}
        Write(pMCBSP0 -> dxr1, left);	
        Write(pMCBSP0 -> dxr2, right);	
        nAudioCount++; pWork++;
        if ( nAudioCount>=1024 )
        {
        	nAudioCount=0;
        	pWork=pAudio;
        }
    }
}

unsigned int G711ALawEncode(int nLeft,int nRight)
{
	unsigned char cL,cR;
	unsigned int uWork;

	cL=IntToALaw(nLeft);
	cR=IntToALaw(nRight);
	uWork=cL; uWork<<=8; uWork|=cR;
	return(uWork);
}
    
unsigned char IntToALaw(int nInput)
{
	int segment;
	unsigned int i, sign,quant;
	unsigned int absol, temp;
	int nOutput;
	unsigned char cOutput;

	temp=absol=abs(nInput);
	sign=(nInput >= 0)?1:0;
	for ( i=0;i<12;i++ )
	{
		nOutput=temp&0x8000;
		if ( nOutput )	break;
		temp<<=1;
	}
	if ( i>=12 )	nOutput=0;
	else
	{
		segment=11-i;
		quant=(absol>>segment)&0x0F;
		segment-=4; 
		if ( segment<=0 )	segment=0;
		else	segment<<=4;
		nOutput=segment+quant;
	}
	if(sign)
		nOutput^=0xD5;
	else
		nOutput^=0x55;
	cOutput=(unsigned char)nOutput;
	return cOutput;
}

int ALawToInt(unsigned char nInput)
{
	int sign, segment;
	int temp, quant,nOutput;
	

	temp=nInput^0xD5;
	sign=(temp&0x80)>>7;
	segment=temp&0x70; segment>>=4; segment+=4;
	quant=temp&0x0F; quant+=0x10;
	if ( segment>0 )	quant<<=segment;
	if ( sign )
		nOutput=-quant;
	else
		nOutput=quant;

	return nOutput;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级中文字| 色av综合在线| 欧美aaaaaa午夜精品| 亚洲成人免费在线观看| 亚洲欧洲日韩女同| 亚洲激情网站免费观看| 亚洲无线码一区二区三区| 亚洲一区免费在线观看| 亚洲国产一区二区视频| 天堂影院一区二区| 久久国产日韩欧美精品| 黄网站免费久久| 丁香啪啪综合成人亚洲小说| 99麻豆久久久国产精品免费| 一本到一区二区三区| 欧美日本一区二区在线观看| 91精品国产一区二区人妖| 日韩欧美你懂的| 国产亚洲一区字幕| 中文字幕制服丝袜一区二区三区| 亚洲色图一区二区| 日韩av电影天堂| 国产麻豆91精品| 日本精品一区二区三区高清 | 97国产精品videossex| 日韩一二三四区| 亚洲国产日韩一区二区| 久久夜色精品国产欧美乱极品| 久久综合一区二区| 中文字幕一区二区5566日韩| 亚洲一区二区三区国产| 久久成人免费电影| 成人精品小蝌蚪| 欧美一区二区视频观看视频 | 图片区小说区区亚洲影院| 免费日韩伦理电影| bt欧美亚洲午夜电影天堂| 欧美日韩一区高清| 久久精品人人爽人人爽| 亚洲制服丝袜av| 国产一区二区h| 欧美色倩网站大全免费| 久久精品亚洲麻豆av一区二区| 亚洲激情图片一区| 国产成人在线视频播放| 欧美高清激情brazzers| 国产精品女上位| 美日韩一区二区| 欧美亚洲国产一区二区三区va| 精品999久久久| 视频在线观看一区| 色婷婷av一区| 中文字幕五月欧美| 国产精品一线二线三线精华| 欧美精品一卡二卡| 亚洲精品免费视频| 国产大片一区二区| 欧美大尺度电影在线| 五月激情综合色| 欧美色综合天天久久综合精品| 国产日本欧美一区二区| 精品一区二区免费在线观看| 欧美日本一区二区三区四区| 亚洲区小说区图片区qvod| 国产999精品久久| 久久影音资源网| 国产曰批免费观看久久久| 日韩丝袜情趣美女图片| 一级中文字幕一区二区| 91蝌蚪国产九色| 中文字幕免费一区| 国产福利视频一区二区三区| 精品国产精品网麻豆系列| 青青草国产成人99久久| 欧美一区二区三区四区久久| 日韩精品一二区| 欧美高清一级片在线| 日韩中文字幕麻豆| 欧美欧美午夜aⅴ在线观看| 一级特黄大欧美久久久| 欧美人与禽zozo性伦| 亚洲自拍偷拍av| 欧美人体做爰大胆视频| 视频一区二区中文字幕| 日韩欧美在线网站| 久久国产麻豆精品| 久久你懂得1024| 国产成人亚洲精品青草天美| 欧美韩国一区二区| 99久久精品一区二区| 亚洲免费在线观看视频| 91福利精品第一导航| 亚洲va在线va天堂| 欧美成人激情免费网| 国精产品一区一区三区mba视频| 久久综合视频网| 成人国产精品免费观看动漫| 亚洲美女免费视频| 欧美一级理论片| 懂色av一区二区在线播放| 亚洲欧洲国产日本综合| 欧美色综合天天久久综合精品| 日韩av在线播放中文字幕| 久久久久久久久99精品| 91网站在线播放| 免费高清在线视频一区·| 欧美激情在线一区二区三区| 91麻豆产精品久久久久久| 日韩av电影天堂| 中文字幕在线不卡| 欧美午夜免费电影| 久久精品国产色蜜蜜麻豆| 国产欧美一区二区精品性色 | 午夜免费久久看| 国产亚洲短视频| 欧美性xxxxxxxx| 成人深夜福利app| 首页欧美精品中文字幕| 国产精品成人免费在线| 欧美成人aa大片| 欧美专区亚洲专区| 成人app在线| 免费看欧美美女黄的网站| 中文字幕精品—区二区四季| 9191精品国产综合久久久久久 | 中文一区在线播放| 欧美精选一区二区| 成人av电影在线观看| 蜜臀久久99精品久久久久久9| 中文字幕一区二区在线播放| 日韩美女一区二区三区| 欧洲一区在线电影| 成人精品亚洲人成在线| 国产永久精品大片wwwapp | 日韩午夜av电影| 欧美撒尿777hd撒尿| 波多野结衣亚洲| 国产麻豆成人传媒免费观看| 免费成人在线播放| 视频一区二区中文字幕| 亚洲一区二区三区小说| 中文字幕在线观看不卡视频| 久久久久国产精品麻豆| 日韩一本二本av| 欧美三级韩国三级日本三斤| 色8久久人人97超碰香蕉987| 99精品偷自拍| 91网上在线视频| 91成人免费在线视频| 91蜜桃视频在线| 色综合中文字幕国产 | 日日摸夜夜添夜夜添国产精品| ...av二区三区久久精品| 久久久av毛片精品| 久久综合国产精品| 2024国产精品| 国产亚洲精品bt天堂精选| 国产亚洲欧美日韩日本| 久久亚区不卡日本| 国产欧美一区二区三区在线看蜜臀| 久久久久久久性| 亚洲国产精品v| **性色生活片久久毛片| 一区二区三区美女视频| 一区二区三区四区乱视频| 一区二区三区日韩欧美| 亚洲国产精品久久人人爱| 天天操天天综合网| 麻豆精品国产传媒mv男同| 激情国产一区二区| 成人免费毛片aaaaa**| 91日韩在线专区| 欧美日韩国产一二三| 日韩午夜激情av| 中文字幕在线一区免费| 亚洲最大的成人av| 日本强好片久久久久久aaa| 韩国三级中文字幕hd久久精品| 成人激情av网| 精品视频色一区| 精品裸体舞一区二区三区| 亚洲欧美在线观看| 日本va欧美va精品发布| 福利一区二区在线观看| 日本精品免费观看高清观看| 4438x成人网最大色成网站| 久久精品夜夜夜夜久久| 亚洲综合色自拍一区| 国产一区二区三区在线观看精品| 成人黄色小视频在线观看| 欧美三级一区二区| 国产欧美一区二区三区网站 | 国产亚洲成年网址在线观看| 一区二区三区免费在线观看| 精品一区二区日韩| 欧美曰成人黄网| 中文字幕乱码亚洲精品一区| 日韩激情中文字幕| 97精品电影院| 国产欧美一区二区精品仙草咪 |