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

📄 test4.asm

📁 数字音频混响器设计 用于DSP实现,实现混音效果.
💻 ASM
字号:

			.title  	"test4"
			.mmregs 
stack		.usect 		"stack",50
xn			.usect		"xn",400	;自定义数据空间
y_out		.usect		"y_out",1
aa0			.usect		"aa0",1 	;自定义数据空间
fir_data		.usect		"fir_dat",41
fir_out		.usect      "fir_out",1
h0			.usect      "h0",41
d_input     .usect      "d_input",64
buffir	 	.usect 		"buffer",1
frame	 	.usect 		"frame",1
flag     	.usect 		"flag",1
currbuff  	.usect 		"curbuff",1
length      .set 		04FFh
len			.set		0190h		;延时的时间设置,延时240(ms)个采样数据,后来改成400个(50ms)
A1			.set		4000h		;0.25的小数表示2000h,0.5的小数表示4000H,1的小数表示7FFFh
AA0			.set		0000h
			.global 	buffer,frame,flag,stack
			.global 	currbuff	
   			 .def 		_c_int00
  			.ref		_init_5402
			.ref		_init_AD50
			.include 	"reg.h"
			
			.data
COEF:	.word   89*32768/10000
        .word   215*32768/10000
        .word   12*32768/10000
        .word   -95*32768/10000
        .word   110*32768/10000
        .word   -76*32768/10000
		.word   2*32768/10000
		.word   93*32768/10000
        .word   -167*32768/10000
        .word   178*32768/10000 
        .word   -95*32768/10000
        .word   -70*32768/10000
        .word   262*32768/10000
        .word   -390*32768/10000
        .word   360*32768/10000
        .word   -114*32768/10000
		.word   -346*32768/10000
		.word   938*32768/10000
        .word   -1527*32768/10000
        .word   1961*32768/10000 
        .word   7880*32768/10000
        .word   1961*32768/10000
        .word   -1527*32768/10000        
		.word   938*32768/10000
		.word   -346*32768/10000
		.word   -114*32768/10000
        .word   360*32768/10000
        .word   -390*32768/10000
        .word   262*32768/10000
		.word   -70*32768/10000
		.word   -95*32768/10000
        .word   178*32768/10000
        .word   -167*32768/10000 
        .word   93*32768/10000
        .word   2*32768/10000
        .word   -76*32768/10000
        .word   110*32768/10000
        .word   -95*32768/10000
        .word   12*32768/10000
		.word   215*32768/10000
		.word   89*32768/10000
        
    	.text   
_c_int00:     
		RSBX XF     ;test2的改进程序,加入混响效果,其实就是将采样值延时30ms再相加	   
		RSBX XF
 		SSBX XF 
 		SSBX FRCT	;设置小数运算
 		
		SSBX INTM	;关闭所有可屏蔽中断

		STM #stack+50,SP	;初始化堆栈指针
		NOP
		NOP

		CALL _init_5402 	;初始化5402dsp
		NOP
		NOP
      
	; ***init McBSP,初始化多缓冲串行口McBSP1***
		STM SPCR1,MCBSP1_SPSA	;SPCR1=0000h接受复位
		STM #0000h,MCBSP1_SPSD	;0021h

		STM SPCR2,MCBSP1_SPSA	;SPCR2=0001h发送复位
		STM #0000h,MCBSP1_SPSD	;0201h

		STM RCR1,MCBSP1_SPSA	;RCR1=0002h,设置DSP串口1工作在每帧一个字,每个字16位(还有种是15+M/S的模式)
		STM #0040h,MCBSP1_SPSD	;16bits

		STM RCR2,MCBSP1_SPSA	;RCR2=0003h
		STM #0000h,MCBSP1_SPSD

		STM XCR1,MCBSP1_SPSA	;XCR1=0004h,设置DSP串口1工作在每帧一个字,每个字16位
		STM #0040h,MCBSP1_SPSD

		STM XCR2,MCBSP1_SPSA	;XCR2=0005h
		STM #0000h,MCBSP1_SPSD

		STM SRGR1,MCBSP1_SPSA	;SRGR1=0006,抽样率生成器1初始化
		STM #0000000000000000b,MCBSP1_SPSD	;设置串口工作频率

		STM SRGR2,MCBSP1_SPSA	;SRGR2=0007,抽样率生成器2初始化
		STM #0000000000000000b,MCBSP1_SPSD	;设置采样率发生器时钟


		STM PCR,MCBSP1_SPSA		;PCR=000e,管脚控制寄存器初始化
		STM #000ch,MCBSP1_SPSD
		NOP
		NOP
		
		STM SPCR1,MCBSP1_SPSA	;接受使能
		STM #0001h,MCBSP1_SPSD;0021h

		STM SPCR2,MCBSP1_SPSA	;发送使能
		STM #0001h,MCBSP1_SPSD;0201h

		CALL _init_AD50		;初始化ad50
		NOP
		NOP

		STM #h0,AR1
		rpt #40
		MVPD COEF,*AR1+
;LOOP以下的程序段用来接受一个数据,紧接着转发这个数据。	
LOOP:	STM  SPCR1,MCBSP1_SPSA		;设置子地址,使其访问串口控制寄存器1
LOOPR:  BITF *(MCBSP1_SPSD), #0x0002 ;TC= *(MCBSP1_SPSD)&0x0002h测试由立即数规定的位域,这里访问MCBSP1_SPSD对应基本数据寄存器1
        BC LOOPR, NTC	;如果TC=0,转移到LOOPR,继续等待。TC=1表示16bit已经传完,则不在等待,操作下一条语句
        NOP
        NOP
 		LDM MCBSP1_DRR1, A		;将MMR加载到累加器A

⌨️ 快捷键说明

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