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

📄 c54_init.asm

📁 该代码采用c5400dsp的汇编语言和c语言实现语音adpcm压缩与解压的程序
💻 ASM
字号:
		    .copy 5410.mmreg
			.def  _c54_init,_hpidsp_host,_delay
			.global _ad_samp_freq
	        .bss  _ad_samp_freq,1
            .bss  IO_Outdata,1
			.text
_c54_init:   
	        SSBX	INTM
	        portr   0400h,IO_Outdata

;CPU                                                                                                                               

	        STM	0,ST0					;ARP=0、DP=0                                                                       
	        				                                                                                  
	        STM	0100001101011111B,ST1	;CPL=0 DP直接寻址、中断屏蔽、溢出保护、                                            
	        							;符号扩展、FRCT有效、ARP无效、ASM=-1                                                
	        STM	0010000000100100B,PMST	;中断定位2000H、程序/数据空间有效,DROM=1 SARAM2有效
            STM 0x7FFF,SWWSR	        ;0 WS for memory, 2 WS for I/O  */
            STM 0x3,@0x2B  	        
;
;CLK                                                                                                                               
                                                                                                                                   
	        STM	0,BSCR			;CLKOUT = CPU CLOCK
	        NOP
	        NOP                                                                
	        STM	0,CLKMD			;Reset to DIV Mod                                                                  
	        NOP
	        NOP
	        STM	1001011111111111B,CLKMD	;PLL Multiply 10  
	        NOP
	        NOP  
	        NOP
	        NOP                                                               
;TOUT  = 100M/16                                                                                                                          
	        STM	0000010000010001B,TCR	;TDDR=3
	        NOP
	        NOP
	        STM	0XFFFE,PRD			;PRD=3                                                                             
	        NOP
	        NOP
	        STM	0000010000000011B,TCR	;TDDR=3  
	        NOP
	        NOP
;	        
			portw   IO_Outdata,0400h
	        CALL	WAITT
;McBSP0         
		STM	0,SPSA0                                                                                                    
	        STM	0X40A0,SPCR0		;SPCR10		;reset                                                             
	        STM	1,SPSA0                                                                                                    
	        STM	0X0220,SPCR0		;SPCR20                                                                            
	        STM	2,SPSA0                                                                                                    
	        STM	0X0040,SPCR0		;RCR10		;receive frame and word length                                     
	        STM	3,SPSA0                                                                                                    
	        STM	0X0040,SPCR0		;RCR20		;receive frame and word length                                     
	        STM	4,SPSA0                                                                                                    
	        STM	0X0040,SPCR0		;xCR10		;transmit frame and word length                                    
	        STM	5,SPSA0                                                                                                    
	        STM	0X0040,SPCR0		;xCR20		;transmit frame and word length                                    
	        STM	0x000e,SPSA0                                                                                               
	        STM	0CH,SPCR0		;PCR0		;Polarity                                          
	       	STM	0,DXR10		;发送清空
		STM	0,23H
	        NOP                                                                                                                
	        NOP                                                                                                                
	        STM	1,SPSA0                                                                                                    
	        STM	0X0221,SPCR0		;SPCR20                                                                            
	        STM	0,SPSA0                                                                                                    
	        STM	0X40A1,SPCR0		;SPCR10		;run		                                                   
	        NOP                                                                                                        
			NOP
;
;AD变换器0
		CALL	WAITT
;reg 2 AD分频器
		CALL	DX0EMPT
		STM		0,DXR10		;发送清空
		CALL	DX0EMPT
		STM		1,DXR10		;第二串口通信请求
		CALL	DX0EMPT
		ld      *(_ad_samp_freq),A
		stlm    A,DXR10
		;STM		0000010000000001B,DXR10		;
		CALL	DX0EMPT
		STM		0,DXR10
;reg 4	输入放大	
		CALL	DX0EMPT
		STM		0,DXR10		;发送清空
		CALL	DX0EMPT
		STM		1,DXR10		;第二串口通信请求
		CALL	DX0EMPT
		STM		0000100000001100B,DXR10		;
		CALL	DX0EMPT
		STM	    0,DXR10
;AD变换器1缺省值
		CALL	WAITT
;interupt enable
		STM		0X630,IMR		;BSP0,BSP1,HINT,TIMER,INT0
		NOP
		RSBX	INTM
		RET
			
WAITT:	STM		#0X0FFF,AR0
WAITT0:	STM		#0X03F,AR1
WAITT1:	BANZ	WAITT1,*AR1-
		BANZ	WAITT0,*AR0-
		RET		
		
;MCBSP0 发送空检测		
DX0EMPT:STM		1,SPSA0                                                                                                    
	    LDM		SPCR0,A			;SPCR20
	    NOP
	    NOP
	    AND		#0004h,A
	    NOP
	    NOP
	    BC		DX0EMPT,ANEQ
	    NOP
	    NOP
	    CALL	WAITT
	    NOP
	    RET
_delay:	STM		#0X1,AR0
delay0:	STM		#0X1,AR1
delay1:	BANZ	delay1,*AR1-
		BANZ	delay0,*AR0-
		RET		
_hpidsp_host
		STM	0x0a,HPIC				;to init a hpi to host int!
		ret	        
		.end

⌨️ 快捷键说明

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