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

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

?? analog_audio_test.c

?? ADI 公司的DSP ADSP21369 EZ-KIT LITE開發板的全部源代碼
?? C
字號:
////////////////////////////////////////////////////////////////////////////
//
//  Program to check the functionality of the UART
//    device
//
//    - PRD
//

#ifdef __ADSP21375__
	#include <Cdef21375.h>
	#include <def21375.h>
#elif __ADSP21369__
	#include <Cdef21369.h>
	#include <def21369.h>
#endif

#include <signal.h>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <filter.h>


#include "post_common.h"


//////////////////////////////////////////////////////////////////////////////
//
// definitions
//
//////////////////////////////////////////////////////////////////////////////
#define AD1835_REQUIRED_SAMPLES			((MAX_SAMPLES) * 100)
#define AD1835_DESIRED_FREQ 			((float)3000.0)
#define AD1835_SAMPLE_RATE 				((float)48000.0)
#define AD1835_AMPLITUDE				((float)8388607.5)
#define AD1835_ACCEPTABLE_DEVIATION_PCT	((float)0.015)
#define AD1835_MAX_SIGNAL_STRENGTH			(float)5000000.0


//////////////////////////////////////////////////////////////////////////////
//
// constant values & data
//
//////////////////////////////////////////////////////////////////////////////
volatile unsigned int *g_pTXSPx_PTR;
volatile unsigned int * const g_pTXSPx[4] = {
	((volatile unsigned int *)pTXSP1A),
	((volatile unsigned int *)pTXSP1B),
	((volatile unsigned int *)pTXSP2A),
	((volatile unsigned int *)pTXSP2B)  };


volatile unsigned int * const g_pSPCTLx[4] = {
	((volatile unsigned int *)pSPCTL1),
	((volatile unsigned int *)pSPCTL1),
	((volatile unsigned int *)pSPCTL2),
	((volatile unsigned int *)pSPCTL2) };

const unsigned int g_pSPCTLx_values[4] = {
	(SPTRAN | BHD | OPMODE | SLEN24 | SPEN_A),
	(SPTRAN | BHD | OPMODE | SLEN24 | SPEN_B),
	(SPTRAN | BHD | OPMODE | SLEN24 | SPEN_A),
	(SPTRAN | BHD | OPMODE | SLEN24 | SPEN_B) };






//////////////////////////////////////////////////////////////////////////////
//
// function prototypes
//
//////////////////////////////////////////////////////////////////////////////
int TEST_ANALOG_AUDIO(void);
void Init1835viaSPI(void);
void TalkThroughISR(int sig_int);
void InitSPORT(void);




//////////////////////////////////////////////////////////////////////////////
//
// NOTES
//
//////////////////////////////////////////////////////////////////////////////
/*
   Here is the mapping between the SPORTS and the DACS
   ADC -> DSP  : SPORT0A : IIS
   DSP -> DAC1 : SPORT1A : IIS
   DSP -> DAC2 : SPORT1B : IIS
   DSP -> DAC3 : SPORT2A : IIS
   DSP -> DAC4 : SPORT2B : IIS
*/


//////////////////////////////////////////////////////////////////////////////
//
// stand alone test harness
//
//////////////////////////////////////////////////////////////////////////////
#ifdef _STANDALONE_ // use this to run standalone tests

int g_loops = 0;

int main(void)
{
	int bError = 1; 	// returning 1 indicates a pass, anything else is a fail

	InitPLL ();

    // Need to initialize DAI because the sport signals
    // need to be routed
    Config_SRU_DAI();

    // This function will configure the codec on the kit
    Init1835viaSPI();

    // Finally setup the sport to receive / transmit the data
    InitSPORT();

	while(1)
	{
		bError = TEST_ANALOG_AUDIO();
		if( 0 == bError )
		{
			asm("nop;");
			asm("nop;");
			asm("nop;");
			asm("emuidle;");
			asm("nop;");
			asm("nop;");
		}

		g_loops++;
	}

    return bError;
}

#endif //#ifdef _STANDALONE_



int TEST_ANALOG_AUDIO(void)
{
	long lTimeout = (AD1835_REQUIRED_SAMPLES * 4000);

	volatile int n, j;
	volatile int bError = 0; 	// returning 1 indicates a pass, anything else is a fail

 	//g_bLeftRight = 1;
	g_iSampleIndex = 1;
	g_iSampleCount = 0;


    // Need to initialize DAI because the sport signals
    // need to be routed
    Config_SRU_DAI();

    // This function will configure the codec on the kit
    Init1835viaSPI();

    // Finally setup the sport to receive / transmit the data
    InitSPORT();


	for(n = 0; n < 4; n++)
	{
		CreateSinTable(AD1835_AMPLITUDE, AD1835_DESIRED_FREQ, AD1835_SAMPLE_RATE);

		// reconfigure the sports for the
		// correct channel
	    *pSPCTL1 = 0 ;
	    *pSPCTL2 = 0 ;

		*g_pSPCTLx[n] = g_pSPCTLx_values[n];
	    g_pTXSPx_PTR = g_pTXSPx[n];

	    // reset the buffer indexs
	    g_iSampleIndex = 0;
		g_iSampleCount = 0;

		// setup interrupts
	    interrupt(SIG_SP0,TalkThroughISR);


	    // Be in infinite loop and do nothing until done.
	    while( g_iSampleCount < AD1835_REQUIRED_SAMPLES )
	    {
	    	if( 0 == lTimeout-- )
	    	{
			    interrupt(SIG_SP0, SIG_IGN);
			    return 0; // failed to get enough samples
	    	}
		    // once the required number of samples has been collected,
		    // process the signal.
	    };

	    // turn off interrupts so that the data is stable.
	    interrupt(SIG_SP0, SIG_IGN);


	    // test the left channel
	    bError = Test_Channel((float*)g_fSineWaveIn_Left, MAX_SAMPLES,
	    						AD1835_SAMPLE_RATE, AD1835_DESIRED_FREQ,
	    						AD1835_ACCEPTABLE_DEVIATION_PCT,
	    						AD1835_MAX_SIGNAL_STRENGTH,
	    						AD1835_MAX_SIGNAL_STRENGTH);
	    if( 1 == bError )
	    {
	    	// test the right channel
	    	bError = Test_Channel((float*)g_fSineWaveIn_Right, MAX_SAMPLES,
	    							AD1835_SAMPLE_RATE, AD1835_DESIRED_FREQ,
	    							AD1835_ACCEPTABLE_DEVIATION_PCT,
	    							AD1835_MAX_SIGNAL_STRENGTH,
	    							AD1835_MAX_SIGNAL_STRENGTH);
	    }

	    if( 0 == bError )
	    {
	    	return bError;
	    }

	}


    return bError;
}


void TalkThroughISR(int sig_int)
{
	// receive a sample (could be left or right)
	int nInValue = (int)*pRXSP0A;

	if( nInValue & 0x00800000)
	{	// negative sign extend
		nInValue |= 0xFF000000;
	}

	//*g_pTXSPx_PTR = (int)(AD1835_AMPLITUDE * sin( (2.0 * PI * AD1835_DESIRED_FREQ * ( ((float)(g_iSampleIndex+1)) / AD1835_SAMPLE_RATE))) );

	*g_pTXSPx_PTR = (int)g_fSineWaveOut[g_iSampleIndex];


	if( g_bLeftRight )
	{	// right side
		g_fSineWaveIn_Right[g_iSampleIndex] = (float)nInValue;
	}
	else
	{	// left side
		g_fSineWaveIn_Left[g_iSampleIndex] = (float)nInValue;
		g_iSampleIndex++;	// only increment the index when both channels have been sent.
	}

	g_bLeftRight = !g_bLeftRight;

	if( g_iSampleIndex > MAX_SAMPLES-1 )
		g_iSampleIndex = 0;

	g_iSampleCount++;
}





?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久三级| 日本亚洲免费观看| 亚洲成av人片| 国产精品系列在线播放| 欧洲国内综合视频| 国产精品亲子乱子伦xxxx裸| 美腿丝袜亚洲色图| 欧美综合一区二区三区| 国产精品麻豆99久久久久久| 国产精品99久| 精品播放一区二区| 日本亚洲三级在线| 在线不卡欧美精品一区二区三区| 亚洲视频精选在线| 99热99精品| 国产精品久久免费看| 国产在线播放一区二区三区| 91精品久久久久久久91蜜桃| 亚洲一区二区三区爽爽爽爽爽 | 欧美激情一区二区三区| 久久99深爱久久99精品| 欧美高清激情brazzers| 亚洲一级在线观看| 欧美最猛性xxxxx直播| 一区二区三区精品在线| 96av麻豆蜜桃一区二区| 国产精品乱码一区二区三区软件| 国产高清不卡二三区| 久久久久久久电影| 国产主播一区二区| 久久久久成人黄色影片| 国产91丝袜在线观看| 中文字幕欧美日本乱码一线二线| 国产一区在线观看麻豆| 国产精品网曝门| av影院午夜一区| 亚洲免费在线看| 欧美日韩一区二区在线观看 | 国产乱码精品一区二区三区忘忧草 | 欧美r级在线观看| 性做久久久久久久久| 欧美日本一区二区三区四区| 日本网站在线观看一区二区三区| 欧美一区二区日韩一区二区| 久久国产免费看| 久久综合久色欧美综合狠狠| 国产老肥熟一区二区三区| 国产欧美日韩视频一区二区 | 亚洲欧美日韩小说| 欧美午夜一区二区| 日本伊人精品一区二区三区观看方式 | 精品一区二区影视| 国产精品美女久久久久久久| 欧美最猛性xxxxx直播| 免费精品视频在线| 亚洲国产高清aⅴ视频| 色哟哟一区二区三区| 日韩国产高清在线| 欧美国产日本视频| 91国产免费看| 精品一区中文字幕| 亚洲免费高清视频在线| 欧美日韩不卡视频| 福利一区在线观看| 亚洲高清免费观看高清完整版在线观看| 欧美一级xxx| 色婷婷综合在线| 激情久久五月天| 亚洲一区二区三区不卡国产欧美| 日韩欧美一区在线| 91视视频在线直接观看在线看网页在线看| 亚洲成人免费av| 国产免费观看久久| 日韩一区二区三区电影在线观看| 成人午夜激情视频| 蜜桃av一区二区三区| 综合网在线视频| 久久久99精品久久| 91麻豆精品国产| 色乱码一区二区三区88| 国内外成人在线| 亚洲国产视频在线| 亚洲欧美日韩国产中文在线| 欧美电视剧免费观看| 欧美视频一二三区| 欧美日韩一级视频| 狠狠色丁香久久婷婷综| 亚洲久草在线视频| 久久伊人蜜桃av一区二区| 欧美无乱码久久久免费午夜一区| 国产乱码精品1区2区3区| 日本欧美在线观看| 亚洲第一成年网| 亚洲色图另类专区| 国产精品丝袜一区| 国产午夜精品在线观看| 日韩无一区二区| 欧美精品第一页| 91看片淫黄大片一级在线观看| 国产精品一区久久久久| 日本视频一区二区| 天堂精品中文字幕在线| 一区二区三区四区蜜桃 | 日本不卡高清视频| 亚洲国产精品自拍| 亚洲小说春色综合另类电影| 一区二区三区在线视频播放 | 欧美亚洲高清一区| 91麻豆免费观看| 99精品在线观看视频| av在线不卡免费看| 不卡高清视频专区| youjizz国产精品| 欧美一区二区三区在线电影| 欧美高清视频不卡网| 91.com视频| 精品美女被调教视频大全网站| 日韩欧美一区二区在线视频| 欧美不卡123| 国产日韩欧美一区二区三区乱码| 久久综合久久综合亚洲| 中国色在线观看另类| 国产精品理论片在线观看| 亚洲欧美视频在线观看视频| 一个色综合av| 日韩精品乱码免费| 国内精品国产成人国产三级粉色 | 欧美制服丝袜第一页| 在线看国产日韩| 欧美日韩精品专区| 日韩精品中午字幕| 欧美激情在线一区二区| 亚洲天堂久久久久久久| 亚洲一区二区三区中文字幕在线| 亚洲成年人网站在线观看| 麻豆精品视频在线观看视频| 国产成人在线视频网站| 91蝌蚪porny| 777欧美精品| 欧美激情一区二区三区四区 | 亚洲人成网站色在线观看 | 亚洲欧洲三级电影| 婷婷开心久久网| 国产精品夜夜嗨| 在线视频你懂得一区二区三区| 欧美一区二区视频在线观看| 中文字幕第一区第二区| 爽好久久久欧美精品| 国产精品一二二区| 欧美日韩亚洲综合在线| 国产欧美一区二区三区在线看蜜臀 | 中文字幕人成不卡一区| 五月天亚洲婷婷| 国产成人av影院| 欧美伦理视频网站| 国产精品美女久久久久久2018| 三级不卡在线观看| va亚洲va日韩不卡在线观看| 日韩三级.com| 一区二区三区丝袜| 粉嫩aⅴ一区二区三区四区| 欧美三级欧美一级| 欧美国产日本视频| 久久精品99国产精品日本| 色噜噜偷拍精品综合在线| 久久久综合激的五月天| 天堂在线亚洲视频| 99久久777色| 久久久青草青青国产亚洲免观| 视频一区视频二区中文| 波多野结衣在线一区| 日韩精品自拍偷拍| 亚洲成av人影院| 一本大道久久a久久综合婷婷| 久久美女高清视频| 日产国产欧美视频一区精品| 色菇凉天天综合网| 国产精品毛片a∨一区二区三区| 免费成人av在线| 337p亚洲精品色噜噜狠狠| 一区二区三区在线免费视频| 成人精品视频一区| 日本一区二区三区视频视频| 韩国精品免费视频| 日韩欧美激情一区| 免费看精品久久片| 88在线观看91蜜桃国自产| 亚洲国产精品嫩草影院| 色综合久久久久综合| 亚洲天堂av一区| 91色九色蝌蚪| 亚洲精品五月天| 色系网站成人免费| 亚洲精选一二三| 91女厕偷拍女厕偷拍高清| 亚洲色图都市小说| 在线精品视频免费播放| 一区二区三区四区亚洲| 欧美三级韩国三级日本三斤| 亚洲国产欧美在线人成|