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

📄 adds_21161_ezkit_.asm

📁 语音信号进行Fir滤波
💻 ASM
字号:
#include <asm_sprt.h>

#include "def21161.h"
#include "adds_21161_ezkit.h"

.section /dm seg_dmda;

.var 			_Left_Channel0;			/* Input values from AD1836 ADCs */
.var			_Left_Channel1;
.var			_Left_Channel2;
.var			_Left_Channel3;			/* AD1852 */
.var 			_Right_Channel0;
.var 			_Right_Channel1;
.var 			_Right_Channel2;
.var 			_Right_Channel3;			/* AD1852 */
.var			_Left_Channel_SPDIF_rx;
.var			_Right_Channel_SPDIF_rx;

.global 		_Left_Channel0;			/* Input values from AD1836 ADCs */
.global			_Left_Channel1;
.global			_Left_Channel2;
.global			_Left_Channel3;			/* AD1852 */
.global 		_Right_Channel0;
.global 		_Right_Channel1;
.global 		_Right_Channel2;
.global 		_Right_Channel3;			/* AD1852 */
.global			_Left_Channel_SPDIF_rx;
.global			_Right_Channel_SPDIF_rx;



.extern			_rx0a_buf;
.extern			_tx2a_buf;



.section /pm seg_pmco;

_Receive_Samples:
.global _Receive_Samples;
//void	Receive_Samples();

	/* modified to merge channels 0 and 1 */

	/* get AD1836 left channel input samples, save to data holders for processing */
	r1 = -31;
	r0 = dm(_rx0a_buf + Internal_ADC_L0);	f0 = float r0 by r1;	// dm(_Left_Channel0) = r0;			
	r2 = dm(_rx0a_buf + Internal_ADC_L1);	f2 = float r2 by r1;	f0 = f0 + f2; 	dm(_Left_Channel0) = r0;			
	r0 = dm(_rx0a_buf + AUX_ADC_L0);		f0 = float r0 by r1;	dm(_Left_Channel_SPDIF_rx) = r0;

	/* get AD1836 right channel input samples, save to data holders for processing */
	r0 = dm(_rx0a_buf + Internal_ADC_R0);	f0 = float r0 by r1;	//dm(_Right_Channel0) = r0;			
 	r2 = dm(_rx0a_buf + Internal_ADC_R1);	f2 = float r2 by r1;	f0 = f0 + f2; 	dm(_Right_Channel0) = r0;		
	r0 = dm(_rx0a_buf + AUX_ADC_R0);		f0 = float r0 by r1;	dm(_Right_Channel_SPDIF_rx) = r0;
	
	leaf_exit;

_Receive_Samples.end:


_Transmit_Samples:
.global _Transmit_Samples;

	r1 = 31;

/* output processed left ch audio samples to AD1836 */
	r0 = dm(_Left_Channel0);		r0 = trunc f0 by r1;	dm(_tx2a_buf + Internal_DAC_L0) = r0;
	r0 = dm(_Left_Channel1);		r0 = trunc f0 by r1;	dm(_tx2a_buf + Internal_DAC_L1) = r0;
	r0 = dm(_Left_Channel2);		r0 = trunc f0 by r1;	dm(_tx2a_buf + Internal_DAC_L2) = r0;
	r0 = dm(_Left_Channel3);		r0 = trunc f0 by r1;	dm(_tx2a_buf + AUX_DAC_L0) = r0;

/* output processed right ch audio samples to AD1836 */
	r0 = dm(_Right_Channel0); 		r0 = trunc f0 by r1;	dm(_tx2a_buf + Internal_DAC_R0) = r0;
	r0 = dm(_Right_Channel1);		r0 = trunc f0 by r1;	dm(_tx2a_buf + Internal_DAC_R1) = r0;
	r0 = dm(_Right_Channel2);		r0 = trunc f0 by r1;	dm(_tx2a_buf + Internal_DAC_R2) = r0;
	r0 = dm(_Right_Channel3);		r0 = trunc f0 by r1;	dm(_tx2a_buf + AUX_DAC_R0) = r0;

	leaf_exit;

_Transmit_Samples.end:

⌨️ 快捷键说明

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