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

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

?? analog_audio_test.c

?? ADI 公司的DSP ADSP21262 EZ-KIT LITE開發(fā)板的全部源代碼
?? C
字號:
/*****************************************************************************
**																			**
**	 Name: 	Analog_Audio_test.c													**	
**																			**
******************************************************************************

(C) Copyright 2006 - Analog Devices, Inc.  All rights reserved.

This software is proprietary and confidential.  By using this software you agree
to the terms of the associated Analog Devices License Agreement.  

Purpose:	Perform a POST analog audio test on the 21364 EZ-Kit Lite	

                                                                               

******************************************************************************/   

#include <Cdef21262.h>
#include <def21262.h>
#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_ACCEPTABLE_DEVIATION_AMP	((float)0.15)
#define AD1835_MAX_SIGNAL_STRENGTH			((float)220000000.0)


#define DSxEN 	0xF

//////////////////////////////////////////////////////////////////////////////
//
// 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);




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_ACCEPTABLE_DEVIATION_AMP);
	    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_ACCEPTABLE_DEVIATION_AMP);
	    }

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

	}
	
	//turn off DSxEN that will cause SPI flash memory test fail.
	*pSPIFLG &= (~DSxEN);

    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)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++;
}

//////////////////////////////////////////////////////////////////////////////
//
// 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

    // 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_




?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区三区三四区视频在线观看| 久久国产尿小便嘘嘘尿| 国产精品资源在线看| 日韩欧美色电影| 九九在线精品视频| 久久久一区二区三区捆绑**| 国产成人精品一区二区三区四区| 亚洲国产精品成人综合色在线婷婷| 国产精品1区二区.| 中文字幕亚洲精品在线观看 | 国产视频911| 亚洲精品亚洲人成人网在线播放| 久久久久久久久久久久久久久99| 日韩一区二区在线免费观看| 捆绑调教美女网站视频一区| 久久久噜噜噜久噜久久综合| 91在线码无精品| 午夜精品影院在线观看| 精品国产精品网麻豆系列| 国产精品一区二区在线观看网站| 国产精品精品国产色婷婷| 色婷婷av一区二区三区大白胸 | 亚洲日本免费电影| 欧美亚洲另类激情小说| 激情久久五月天| 国产精品久久久久久久第一福利| 色欧美88888久久久久久影院| 日韩激情在线观看| 国产免费久久精品| 91麻豆精品国产91久久久| 国产高清视频一区| 香蕉加勒比综合久久| 久久丝袜美腿综合| 欧美性色黄大片| 丁香六月久久综合狠狠色| 亚洲va天堂va国产va久| 国产欧美日韩综合| 91精品国产综合久久福利软件| 国产成人亚洲综合a∨婷婷| 亚洲国产另类精品专区| 中文在线一区二区| 欧美二区三区的天堂| 丁香婷婷综合色啪| 蜜臀99久久精品久久久久久软件| 国产精品高潮久久久久无| 日韩你懂的在线播放| 欧美在线三级电影| 成人av网址在线观看| 免费在线观看成人| 一卡二卡欧美日韩| 亚洲亚洲精品在线观看| 日韩伦理av电影| 久久久www免费人成精品| 91麻豆蜜桃一区二区三区| 亚洲欧美另类小说视频| 风间由美一区二区三区在线观看| 欧美一二区视频| 免费在线观看一区二区三区| 中文字幕视频一区二区三区久| 日韩av不卡一区二区| av一区二区久久| 亚洲精品成a人| 欧美人妖巨大在线| 97国产一区二区| 国产999精品久久久久久绿帽| 偷拍与自拍一区| 亚洲自拍欧美精品| 亚洲欧美另类综合偷拍| 亚洲欧美另类图片小说| 北岛玲一区二区三区四区| 国产精品一区二区久久不卡 | 日韩精品在线看片z| 精品视频免费看| 欧美三电影在线| 欧美三级电影在线看| 日本电影亚洲天堂一区| 色综合天天综合网国产成人综合天 | 五月天中文字幕一区二区| 一区二区三区欧美亚洲| 一区二区三区日韩精品视频| 亚洲综合无码一区二区| 又紧又大又爽精品一区二区| 一区二区三区在线看| 亚洲久草在线视频| 亚洲一区中文在线| 亚洲成人1区2区| 午夜激情一区二区三区| 日韩在线a电影| 久久精品国产亚洲5555| 国产一区在线不卡| 国产a精品视频| 99精品桃花视频在线观看| 97成人超碰视| 在线成人高清不卡| 日韩精品最新网址| 国产日韩欧美精品一区| 日韩码欧中文字| 亚洲高清一区二区三区| 麻豆精品国产传媒mv男同| 国产主播一区二区| 91视频在线观看免费| 欧美色倩网站大全免费| 日韩欧美你懂的| 国产色综合久久| 一个色综合av| 麻豆视频一区二区| jlzzjlzz亚洲日本少妇| 欧美做爰猛烈大尺度电影无法无天| 欧美精品xxxxbbbb| 久久久欧美精品sm网站| 日韩理论在线观看| 蜜臀av一区二区在线免费观看| 福利一区在线观看| 欧美日韩一级二级三级| 精品99999| 亚洲一区二区三区在线看| 国精品**一区二区三区在线蜜桃| 成人h版在线观看| 欧美福利视频一区| 国产精品久久午夜夜伦鲁鲁| 五月婷婷久久丁香| 99在线精品免费| 日韩欧美一区中文| 亚洲人成7777| 国产精品一区专区| 欧美日韩视频第一区| 国产亚洲欧美在线| 丝袜美腿高跟呻吟高潮一区| 高清不卡一二三区| 日韩欧美国产不卡| 亚洲一区二区三区四区在线免费观看 | 北条麻妃国产九九精品视频| 欧美一级日韩不卡播放免费| 成人欧美一区二区三区白人| 美女一区二区视频| 91久久人澡人人添人人爽欧美 | 成人黄色电影在线| 欧美精品一区二区三区蜜臀| 亚洲午夜久久久久| 成人av高清在线| 久久精品综合网| 开心九九激情九九欧美日韩精美视频电影 | 久久久电影一区二区三区| 亚洲成av人影院| 色噜噜狠狠色综合中国| 中文子幕无线码一区tr| 国内精品伊人久久久久av一坑| 欧美精品粉嫩高潮一区二区| 一区二区三区四区视频精品免费 | 国产精品人人做人人爽人人添| 麻豆精品久久久| 欧美日韩1234| 亚洲大片免费看| 在线视频你懂得一区| 国产精品成人免费精品自在线观看 | 国产高清精品在线| 欧美tk丨vk视频| 久久99精品网久久| 欧美一级二级三级乱码| 亚洲成人www| 欧美日韩在线三级| 亚洲宅男天堂在线观看无病毒| 91一区二区在线观看| 一区免费观看视频| 99久久精品情趣| 最新日韩av在线| zzijzzij亚洲日本少妇熟睡| 国产欧美一区二区精品性色 | 精品国产sm最大网站| 九九视频精品免费| 久久亚洲捆绑美女| 国产一区二区三区四区五区入口 | 亚洲精品在线观看视频| 蜜臀av在线播放一区二区三区| 欧美一区二区成人| 久久国产精品色婷婷| 欧美电视剧在线看免费| 国产一区二区三区四区五区入口| 欧美tickling挠脚心丨vk| 国产一区二区三区黄视频 | eeuss鲁片一区二区三区 | 欧美视频一区在线观看| 亚州成人在线电影| 精品免费视频一区二区| 国产福利一区二区三区在线视频| 国产日产精品1区| 91香蕉视频污在线| 亚洲不卡av一区二区三区| 日韩限制级电影在线观看| 国产精品一级片在线观看| 国产精品污网站| 在线观看日韩电影| 捆绑调教一区二区三区| 欧美国产乱子伦| 欧美在线三级电影| 国内精品免费在线观看| 综合激情成人伊人| 7777精品伊人久久久大香线蕉最新版 | 日韩免费视频一区| 成人国产一区二区三区精品|