⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 process_data.c

📁 visual dsp++ audio iir
💻 C
字号:
#include "Talkthrough.h"

//--------------------------------------------------------------------------//
// Function:	Process_Data()												//
//																			//
// Description: This function is called from inside the SPORT0 ISR every 	//
//				time a complete audio frame has been received. The new 		//
//				input samples can be found in the variables iChannel0LeftIn,//
//				iChannel0RightIn, iChannel1LeftIn and iChannel1RightIn 		//
//				respectively. The processed	data should be stored in 		//
//				iChannel0LeftOut, iChannel0RightOut, iChannel1LeftOut,		//
//				iChannel1RightOut, iChannel2LeftOut and	iChannel2RightOut	//
//				respectively.												//
//--------------------------------------------------------------------------//


void Process_Data(void)
{
	//Process the data
	int nValue;
	int i;
	extern int BTCLeftVolume;
	extern int BTCRightVolume;
	//fir_init(state, coefs, delay, NUM_TAPS, 1);	// initialize filter state 
	iir_init(state,coefs,delay,NUM_TAPS);
	if (dmaFlag == 0)
	{
		/*for (i=0;i<(2*VEC_SIZE);i++)
		{
			iTxBuffer0[i] = iRxBuffer1[i];
		}*/
		
		//firStereo(iRxBuffer1, iTxBuffer0, VEC_SIZE, &state);	// apply the filter to the data
		iirStereo(iRxBuffer1,iTxBuffer0, VEC_SIZE, &state);
		for (i=0;i<VEC_SIZE;i++)
		{
			iChannel0LeftOut = iTxBuffer0[2*i];
			nValue = (iChannel0LeftOut);	
			nValue = (nValue >> BTCLeftVolume);	//volume
			btc_write_value(0, (unsigned int*)&nValue, sizeof(nValue));
			iChannel0RightOut = iTxBuffer0[2*i+1];
			nValue = (iChannel0RightIn);	
			nValue = (nValue >> BTCRightVolume);//volume
			btc_write_value(1, (unsigned int*)&nValue, sizeof(nValue));
		}
		dmaFlag = 1;
	}
	else
	{
		/*for (i=0;i<(2*VEC_SIZE);i++)
		{
			iTxBuffer1[i] = iRxBuffer0[i];
		}*/
		
		//firStereo(iRxBuffer0, iTxBuffer1, VEC_SIZE, &state);	// apply the filter to the data
		iirStereo(iRxBuffer0, iTxBuffer1, VEC_SIZE, &state);	// apply the filter to the data
		
		for (i=0;i<VEC_SIZE;i++)
		{
			iChannel0LeftOut = iTxBuffer1[2*i];
			nValue = (iChannel0LeftOut);	
			nValue = (nValue >> BTCLeftVolume);	//volume
			btc_write_value(0, (unsigned int*)&nValue, sizeof(nValue));
			iChannel0RightOut = iTxBuffer1[2*i+1];
			nValue = (iChannel0RightIn);	
			nValue = (nValue >> BTCRightVolume);//volume
			btc_write_value(1, (unsigned int*)&nValue, sizeof(nValue));
		}
		dmaFlag = 0;
	} 
	
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -