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

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

?? aic23.c

?? 使用DM642 來(lái)進(jìn)行scaling 有說(shuō)明檔
?? C
字號(hào):
/*
 *  Copyright 2003 by Texas Instruments Incorporated.
 *  All rights reserved. Property of Texas Instruments Incorporated.
 *  Restricted rights to use, duplicate or disclose this code are
 *  granted through contract.
 *  
 */
/* "@(#) DDK 1.10.00.23 07-02-03 (ddk-b12)" */
/* 
 *  ======== aic23.c ======== 
 *
 *  AIC23 codec driver implementation specific to the 
 *  Spectrum Digital DM642 EVM board.
 */

#include <std.h>

#include <csl.h>
#include <csl_i2c.h>

#include <iom.h>

#include <aic23.h>      
#include <evmdm642_edma_aic23.h>

#include <evmdm642.h>
#include <evmdm642_apll.h>

extern I2C_Handle EVMDM642_I2C_hI2C;

static void aic23Rset(Uint16 regnum, Uint16 regval);
                                                                   
static AIC23_Params codecstate = AIC23_DEFAULTPARAMS_EVMDM642;


static I2C_Config aic23XmtCfg = {
    0x0000007f, /* I2COAR -    Not used if master */
    0x00000000, /* I2CIER -    Disable interrupts, use polling */
    0x0000001b, /* I2CCLKL -   Low period for 100KHz operation */
    0x0000001b, /* I2CCLKH -   High period for 100KHz operation */
    0x00000002, /* I2CCNT -    Data words per transmission */
    0x0000001a, /* I2CSAR -    Slave address */
    0x00004ea0, /* I2CMDR -    Mode */
    0x00000019  /* I2CPSC -    Prescale 300MHz to 12MHz */
};

/*
 *  ======== AIC23_setParams ========
 *
 *  This function takes a pointer to the object of type AIC23_Params,
 *  and writes all 11 control words found in it to the codec. Prior
 *  to that it initializes the codec if this is the first time the
 *  function is ever called.  Return TRUE for successful completion,
 *  FALSE if errors.
 */
Int AIC23_setParams(AIC23_Params *paramsp)
{
    Int i;
    AIC23_Params *params = paramsp;
   
    /*  set to AIC23_DEFAULTPARAMS_EVMDM642 if NULL */
    if (params == NULL) {
        params = &codecstate;
    }
    
    /* Reset the AIC23 */
    aic23Rset(AIC23_RESET, 0);
    
    /* Assign each register */
    for (i = 0; i < AIC23_NUMREGS; i++) {
        aic23Rset(i, params->regs[i]);
    }
    
    return TRUE;
}


/*
 *  ======== aic23Rset ========
 *  Set codec register regnum to value regval.  The 16-bit word is composed
 *  of register address in the upper 7 bits and the 9-bit register value
 *  stored in the parameters structure.
 */
static Void aic23Rset(Uint16 regnum, Uint16 regval)
{
    Uint16 data;
    I2C_Config prevI2CCfg;
    
    /* Mask off lower 9 bits */
    regval &= 0x1ff;
    
    /* Set transmit data */
    data = (regnum << 9) | regval;
    
    /* Wait until bus is free */
    while (I2C_bb(EVMDM642_I2C_hI2C));
    
    /* Save old settings */
    I2C_getConfig(EVMDM642_I2C_hI2C, &prevI2CCfg);
    
    /* Restore settings for AIC23 */
    I2C_config(EVMDM642_I2C_hI2C, &aic23XmtCfg);

    /* Submit the MSB for transmit */
    I2C_writeByte(EVMDM642_I2C_hI2C, (data >> 8) & 0xff);
    
    /* Generate start condition, starts transmission */
    I2C_start(EVMDM642_I2C_hI2C);
    
    /* Wait until MSB transmit is done */
    while(!I2C_xrdy(EVMDM642_I2C_hI2C));

    /* Submit the LSB for transmit */ 
    I2C_writeByte(EVMDM642_I2C_hI2C, data & 0xff);
        
    /* Generate stop condition */
    I2C_sendStop(EVMDM642_I2C_hI2C);  

    /* Wait until bus is free */
    while (I2C_bb(EVMDM642_I2C_hI2C));
    
    /* Save register value if regnum is in range */
    if (regnum < AIC23_NUMREGS)
        codecstate.regs[regnum] = regval;

    /* Short delay for AIC23 to accept command */        
    EVMDM642_waitusec(20);

    /* Reconfigure I2C with old settings */
    I2C_config(EVMDM642_I2C_hI2C, &prevI2CCfg);  
}

#define AIC23_REG8_18432_96000                                                  \
    AIC23_9BITWORD(         /* REG 8: sample rate control */              \
        0,                  /* reserved */                                \
        0,                  /* clock output divider: 1 (MCLK) */          \
        0,                  /* clock input  divider: 1 (MCLK) */          \
        0,1,1,1,1,          /* sampling rate: ADC 48kHz DAC 48kHz */      \
        0                   /* clock mode select (USB/normal): normal */  \
    ) 

#define AIC23_REG8_18432_48000                                                  \
    AIC23_9BITWORD(         /* REG 8: sample rate control */              \
        0,                  /* reserved */                                \
        0,                  /* clock output divider: 1 (MCLK) */          \
        0,                  /* clock input  divider: 1 (MCLK) */          \
        0,0,0,0,1,          /* sampling rate: ADC 48kHz DAC 48kHz */      \
        0                   /* clock mode select (USB/normal): normal */  \
    ) 

#define AIC23_REG8_18432_32000                                                  \
    AIC23_9BITWORD(         /* REG 8: sample rate control */              \
        0,                  /* reserved */                                \
        0,                  /* clock output divider: 1 (MCLK) */          \
        0,                  /* clock input  divider: 1 (MCLK) */          \
        0,1,1,0,1,          /* sampling rate: ADC 48kHz DAC 48kHz */      \
        0                   /* clock mode select (USB/normal): normal */  \
    ) 

#define AIC23_REG8_18432_16000                                                  \
    AIC23_9BITWORD(         /* REG 8: sample rate control */              \
        0,                  /* reserved */                                \
        0,                  /* clock output divider: 1 (MCLK) */          \
        1,                  /* clock input  divider: 1 (MCLK) */          \
        0,1,1,0,1,          /* sampling rate: ADC 48kHz DAC 48kHz */      \
        0                   /* clock mode select (USB/normal): normal */  \
    ) 

#define AIC23_REG8_18432_8000                                                  \
    AIC23_9BITWORD(         /* REG 8: sample rate control */              \
        0,                  /* reserved */                                \
        0,                  /* clock output divider: 1 (MCLK) */          \
        0,                  /* clock input  divider: 1 (MCLK) */          \
        0,0,1,1,1,          /* sampling rate: ADC 48kHz DAC 48kHz */      \
        0                   /* clock mode select (USB/normal): normal */  \
    ) 

#define AIC23_REG8_18432_4000                                                  \
    AIC23_9BITWORD(         /* REG 8: sample rate control */              \
        0,                  /* reserved */                                \
        0,                  /* clock output divider: 1 (MCLK) */          \
        1,                  /* clock input  divider: 1 (MCLK) */          \
        0,0,1,1,1,          /* sampling rate: ADC 48kHz DAC 48kHz */      \
        0                   /* clock mode select (USB/normal): normal */  \
    ) 

#define AIC23_REG8_16934_88200                                                  \
    AIC23_9BITWORD(         /* REG 8: sample rate control */              \
        0,                  /* reserved */                                \
        0,                  /* clock output divider: 1 (MCLK) */          \
        0,                  /* clock input  divider: 1 (MCLK) */          \
        1,1,1,1,1,          /* sampling rate: ADC 48kHz DAC 48kHz */      \
        0                   /* clock mode select (USB/normal): normal */  \
    ) 

#define AIC23_REG8_16934_44100                                                  \
    AIC23_9BITWORD(         /* REG 8: sample rate control */              \
        0,                  /* reserved */                                \
        0,                  /* clock output divider: 1 (MCLK) */          \
        0,                  /* clock input  divider: 1 (MCLK) */          \
        1,0,0,0,1,          /* sampling rate: ADC 48kHz DAC 48kHz */      \
        0                   /* clock mode select (USB/normal): normal */  \
    ) 

#define AIC23_REG8_16934_22050                                                  \
    AIC23_9BITWORD(         /* REG 8: sample rate control */              \
        0,                  /* reserved */                                \
        0,                  /* clock output divider: 1 (MCLK) */          \
        1,                  /* clock input  divider: 1 (MCLK) */          \
        1,0,0,0,1,          /* sampling rate: ADC 48kHz DAC 48kHz */      \
        0                   /* clock mode select (USB/normal): normal */  \
    ) 

#define AIC23_REG8_16934_8021                                                  \
    AIC23_9BITWORD(         /* REG 8: sample rate control */              \
        0,                  /* reserved */                                \
        0,                  /* clock output divider: 1 (MCLK) */          \
        0,                  /* clock input  divider: 1 (MCLK) */          \
        1,0,1,1,1,          /* sampling rate: ADC 48kHz DAC 48kHz */      \
        0                   /* clock mode select (USB/normal): normal */  \
    ) 

/*
 *  ======== AIC23_setSampleRate ========
 *
 */
Void AIC23_setSampleRate(Uint32 sampleRate)
{
	Uint16 reg8Val;

	switch(sampleRate) {
		case 96000:
					EVMDM642_APLL_rset(EVMDM642_APLL_FSG0);
					reg8Val = AIC23_REG8_18432_96000;		
					break;
		case 88200:
					EVMDM642_APLL_rset(EVMDM642_APLL_FSG1);
					reg8Val = AIC23_REG8_16934_88200;		
					break;
		case 48000:
					EVMDM642_APLL_rset(EVMDM642_APLL_FSG0);
					reg8Val = AIC23_REG8_18432_48000;		
					break;
		case 44100:
					EVMDM642_APLL_rset(EVMDM642_APLL_FSG1);
					reg8Val = AIC23_REG8_16934_44100;		
					break;
		case 32000:
					EVMDM642_APLL_rset(EVMDM642_APLL_FSG0);
					reg8Val = AIC23_REG8_18432_32000;		
					break;
		case 22050:
					EVMDM642_APLL_rset(EVMDM642_APLL_FSG1);
					reg8Val = AIC23_REG8_16934_22050;		
					break;
		case 16000:
					EVMDM642_APLL_rset(EVMDM642_APLL_FSG0);
					reg8Val = AIC23_REG8_18432_16000;		
					break;
		case 8021:
					EVMDM642_APLL_rset(EVMDM642_APLL_FSG1);
					reg8Val = AIC23_REG8_16934_8021;		
					break;
		case 8000:
					EVMDM642_APLL_rset(EVMDM642_APLL_FSG0);
					reg8Val = AIC23_REG8_18432_8000;		
					break;
		case 4000:
					EVMDM642_APLL_rset(EVMDM642_APLL_FSG0);
					reg8Val = AIC23_REG8_18432_4000;		
					break;
		default:
					reg8Val = AIC23_REG8_18432_48000;
					break;
	}

	aic23Rset(8, reg8Val);
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性感一类影片在线播放| 日韩免费一区二区三区在线播放| 午夜精品在线看| 国产日韩欧美亚洲| 777色狠狠一区二区三区| 成人免费高清视频| 国产一区在线观看视频| 天天操天天综合网| 最新国产成人在线观看| 久久久久久久久久看片| 91精品欧美一区二区三区综合在| 91同城在线观看| 成人毛片老司机大片| 久久99深爱久久99精品| 亚洲第一av色| 亚洲一区二区在线播放相泽 | 成年人国产精品| 久久66热re国产| 天天av天天翘天天综合网色鬼国产| 亚洲欧洲99久久| 国产精品久久久久影院色老大| 亚洲精品一区二区精华| 欧美二区三区91| 欧美日韩三级一区| 欧美性感一类影片在线播放| 色婷婷久久一区二区三区麻豆| 成人毛片视频在线观看| 丁香婷婷综合五月| 国产一区二区不卡老阿姨| 麻豆精品国产传媒mv男同| 亚洲h精品动漫在线观看| 亚洲成a人v欧美综合天堂| 亚洲制服丝袜在线| 亚洲午夜久久久久久久久电影院| 一区二区三区不卡视频在线观看| 一区二区三区视频在线看| 一区二区三区加勒比av| 亚洲一级电影视频| 一区二区三区av电影| 亚洲国产精品一区二区久久恐怖片| 亚洲综合色噜噜狠狠| 亚洲一区在线电影| 天天综合天天做天天综合| 视频一区视频二区中文| 蜜臀av在线播放一区二区三区 | 午夜不卡av免费| 水野朝阳av一区二区三区| 婷婷久久综合九色综合绿巨人| 亚洲国产日韩一区二区| 午夜精品久久久久影视| 日本不卡免费在线视频| 国产米奇在线777精品观看| 国产成人午夜电影网| aaa亚洲精品| 欧美日韩在线综合| 日韩一区二区在线播放| 久久精品人人做| 亚洲欧美一区二区视频| 亚洲一区二区三区四区在线观看| 亚洲国产精品一区二区www| 日本vs亚洲vs韩国一区三区| 国产曰批免费观看久久久| 成人激情校园春色| 欧美性xxxxxxxx| 精品成人a区在线观看| 国产日韩亚洲欧美综合| 亚洲美女淫视频| 美女视频免费一区| 成人激情电影免费在线观看| 91福利社在线观看| 日韩欧美的一区二区| 中日韩免费视频中文字幕| 亚洲一区在线观看免费 | 久久国产人妖系列| 国产成人免费网站| 欧美日韩中文字幕一区二区| 精品国精品国产| 亚洲精品伦理在线| 麻豆精品蜜桃视频网站| 91一区在线观看| 欧美一区二区三区小说| 亚洲欧洲一区二区在线播放| 日韩高清中文字幕一区| 99久久精品国产导航| 91精品国产色综合久久ai换脸| 中文字幕不卡一区| 日本va欧美va精品| 91热门视频在线观看| 欧美tk—视频vk| 亚洲午夜免费视频| 丁香天五香天堂综合| 日韩一级片在线观看| 亚洲激情六月丁香| 大桥未久av一区二区三区中文| 制服视频三区第一页精品| 亚洲欧美一区二区三区极速播放| 久久黄色级2电影| 欧美无人高清视频在线观看| 亚洲国产精品成人综合| 麻豆精品一区二区| 在线看国产一区二区| 欧美韩国日本不卡| 精品一区二区免费视频| 欧美精品一二三| 一区二区三区精品视频在线| 国产.欧美.日韩| 久久这里只有精品6| 男女男精品网站| 欧美日韩精品系列| 亚洲精品欧美专区| jvid福利写真一区二区三区| 2020国产成人综合网| 日产国产欧美视频一区精品| 欧美亚洲国产一卡| 一区二区三区美女视频| 91视视频在线直接观看在线看网页在线看 | 久久精品综合网| 久久国产精品无码网站| 欧美区视频在线观看| 亚洲午夜日本在线观看| 91福利视频网站| 一区二区三区四区高清精品免费观看| 北岛玲一区二区三区四区| 国产女主播在线一区二区| 国产精品中文字幕日韩精品| 精品日韩一区二区| 蜜乳av一区二区| 日韩免费福利电影在线观看| 麻豆国产精品官网| 欧美岛国在线观看| 久久国产精品免费| 精品久久久久久亚洲综合网| 狠狠v欧美v日韩v亚洲ⅴ| 欧美sm极限捆绑bd| 国产精品影音先锋| 国产人伦精品一区二区| 成人午夜av电影| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 强制捆绑调教一区二区| 欧美一区二区精美| 精品一区二区三区蜜桃| 国产日韩欧美高清在线| 懂色一区二区三区免费观看| 国产精品不卡视频| 一本色道a无线码一区v| 亚洲制服丝袜在线| 欧美一级爆毛片| 激情图区综合网| 亚洲国产精品成人综合色在线婷婷| eeuss鲁片一区二区三区 | 国产精品一区二区视频| 国产精品久久久久久久久果冻传媒| av在线一区二区| 亚洲一区二区三区小说| 欧美精品丝袜久久久中文字幕| 开心九九激情九九欧美日韩精美视频电影| 欧美电影免费观看高清完整版在线| 国产美女精品在线| 成人欧美一区二区三区视频网页| 色偷偷久久一区二区三区| 亚洲综合成人在线| 日韩一级完整毛片| 国产精品亚洲人在线观看| 亚洲视频网在线直播| 7777精品伊人久久久大香线蕉最新版| 另类小说综合欧美亚洲| 国产精品欧美极品| 精品视频在线免费看| 久久国产麻豆精品| 日韩久久一区二区| 日韩三区在线观看| 国产成人日日夜夜| 亚洲3atv精品一区二区三区| 国产亚洲欧美在线| 在线欧美日韩精品| 国产精品原创巨作av| 亚洲一区二区欧美激情| 欧美精品一区二区在线观看| 91欧美激情一区二区三区成人| 另类中文字幕网| 樱花草国产18久久久久| 久久亚洲私人国产精品va媚药| 91精彩视频在线| 国产成人精品免费在线| 爽爽淫人综合网网站| 免费成人av在线播放| 亚洲三级在线播放| 亚洲精品在线电影| 欧美日韩www| 9人人澡人人爽人人精品| 久久99热国产| 亚洲成人午夜电影| 中文字幕佐山爱一区二区免费| 欧美va亚洲va| 欧美精品一级二级三级| 91麻豆福利精品推荐| 国产不卡一区视频| 精东粉嫩av免费一区二区三区| 亚洲国产日韩精品| 亚洲日本免费电影|