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

📄 sine_app.asm

📁 Generation of a Sine Wave Using a TMS320C54x Digital Signal Processor
💻 ASM
字号:
***************************************************
*
*           SineWave Generator
*
*
*    
***************************************************

***********************************************************
*	freq 	= 2*Desired F/Fs *(32768)
*	F		= Desired Frequency
*	Fs     = Sampling Frequency = 44100hz in this case
*********************************************************
FREQ1000    .set	1486 
FREQ1750    .set	2600 
FREQ2000    .set	2972    	
FREQ3000    .set	4458    	
FRAME_SIZE	.set 64    
		  	.mmregs
           	.include "cos256_tbl.inc"
           	.global COSINE_BUFFER
           	.global FREQ_BUFFER
           	.bss	TEMP,1  
		  	.bss	FREQ_BUFFER,128 
		  	.bss	COSINE_BUFFER,257
		    .bss	_FREQ_STEP,1
		    .bss	_INIT_PHASE,1
		    .def	FREQ  
STK		    .usect  "STACK",100
		    .mmregs
		    .sect   "CODE"
FREQ:	    SSBX		OVM
          	SSBX		SXM
          	SSBX		FRCT
          	NOP
          	NOP
            
            STM		#STK+100H,SP
;            STM		#001EH,PMST
            
           
            ST		#FREQ2000,*(_FREQ_STEP)  ;
            ST		#0,*(_INIT_PHASE)        ;
            STM		#FREQ_BUFFER,AR3         ;
            CALL	COPY_COS_TBL             ;
            CALL	_GEN_FREQ                 ;
LOOP:		B		LOOP                     ;
;**********************************************
;         SINEWAVE GENERATOR ROUTINE
;**********************************************          
_GEN_FREQ: STM       #FRAME_SIZE-1,BRC           ;
          RPTB      sine1-1
	    ;  STM       #COSINE_BUFFER,AR2  ;
		  LD        *(_FREQ_STEP),A     ;
          ADD       *(_INIT_PHASE),A    ;A=PRESENT PHASE
          STL       A,*(_INIT_PHASE)    ;SAVE PRESENT PHASE
          
          SUB       #4000H,A            ;SUB PI/2 FOR SINE
          ABS       A                   ;Acc CONTAINS THE OFFSET
          STL       A,*(TEMP)           ;
                                        ;
          LD		*(TEMP),9,A         ;
          STH		A,*(TEMP)           ;
          LD		*(TEMP),A           ;
          ABS		A                   ;
          ADD		#COSINE_BUFFER,A           ;
          STLM		A,AR2               ;
		  nop                           ;
		  nop                           ;
          LD		*AR2,A              ;
          STL		A,*AR3+             ;
                                        ;
sine1:    NOP                           ;
          RET                          ;
         
COPY_COS_TBL:
			STM		#COSINE_BUFFER,AR2
			RPT		#257-1
			MVPD	#COSOFF,*AR2+
			RET
			

⌨️ 快捷键说明

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