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

📄 dac.asm

📁 EVM2407板卡上的测试程序源码
💻 ASM
字号:
*******************************************************
* TMS320C2x/C2xx/C5x ANSI C Codegen Version 7.00       
*******************************************************
;	C:\TIC2XX\C2000\CGTOOLS\BIN\DSPAC.EXE -v2xx dac.c C:\WINDOWS\TEMP\dac.if 
;	dspopt NOT RUN
;	C:\TIC2XX\C2000\CGTOOLS\BIN\DSPCG.EXE -o -v2xx -o C:\WINDOWS\TEMP\dac.if C:\WINDOWS\TEMP\dac.asm C:\WINDOWS\TEMP\dac.tmp 
	.port
	.file	"dac.c"
	.file	"C:\tic2xx\c2000\cgtools\include\math.h"
	.globl	_asin
	.globl	_acos
	.globl	_atan
	.globl	_atan2
	.globl	_ceil
	.globl	_cos
	.globl	_cosh
	.globl	_exp
	.globl	_fabs
	.globl	_floor
	.globl	_fmod
	.globl	_frexp
	.globl	_ldexp
	.globl	_log
	.globl	_log10
	.globl	_modf
	.globl	_pow
	.globl	_sin
	.globl	_sinh
	.globl	_sqrt
	.globl	_tan
	.globl	_tanh
	.file	"dac.c"
	.globl	_port00
	.globl	_port01
	.globl	_port02
	.globl	_port03
	.globl	_port30
	.globl	_port40
	.globl	_GetSin
	.globl	_DACSinOut
	.globl	_DACtest
	.text

	.sym	_DACtest,_DACtest,32,2,0
	.globl	_DACtest

	.func	23
;>>>> 	void DACtest(void)
;>>>> 		unsigned int temp;
;>>>> 		while(1)
******************************************************
* FUNCTION DEF : _DACtest
******************************************************
_DACtest:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,2
	LAR	AR0,*0+

	.sym	_temp,1,14,1,16
L1:
	.line	6
;>>>> 			asm("	clrc  XF");
	clrc  XF
	.line	7
;>>>> 			DACSinOut(1);
	LACK	1
	SACL	*+
	CALL	_DACSinOut
	MAR	*-,AR0
	.line	8
;>>>> 			temp=~KEY&0x00ff;
	IN	* ,030h
	LAC	* ,AR2
	CMPL
	ANDK	255
	LARK	AR2,1
	MAR	*0+
	SACL	* ,AR0
	.line	9
;>>>> 			LED=temp;
	SACL	* 
	OUT	* ,040h
	.line	10
;>>>> 			asm("	setc  XF");
	setc  XF
	.line	11
;>>>> 			DACSinOut(1);	
	MAR	* ,AR1
	LACK	1
	SACL	*+
	CALL	_DACSinOut
	MAR	*-
	.line	12
	B	L1
	.endfunc	35,000000000H,2

	.sym	_GetSin,_GetSin,46,2,0
	.globl	_GetSin

	.func	37
;>>>> 	unsigned int GetSin(unsigned int index)
******************************************************
* FUNCTION DEF : _GetSin
******************************************************
_GetSin:

LF2	.set	0

	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,4
	LAR	AR0,*0+,AR2

	.sym	_index,-3+LF2,14,9,16
	.sym	_temp,1,7,1,32
	.sym	_tmp,3,14,1,16
	.line	2
;>>>> 	    double temp;
;>>>> 	    unsigned int tmp;
	.line	5
;>>>> 	    temp=index;
	LARK	AR2,-3+LF2
	MAR	*0+
	ZALS	* ,AR1
	CALL	F$$UTOF
	MAR	*-
	ZALH	*-
	ADDS	* ,AR2
	ADRK	4-LF2
	SACL	*+
	SACH	*-,AR1
	.line	6
;>>>> 		temp=(sin((temp/180)*3.1416)+1)/2*2000;
	LALK	FL0
	RPTK	1
	TBLR	*+
	LALK	FL1
	RPTK	1
	TBLR	*+
	LALK	FL2
	RPTK	1
	TBLR	*+
	LALK	FL3
	RPTK	1
	TBLR	*+
	LALK	FL4
	RPTK	1
	TBLR	*+
	MAR	* ,AR2
	LAC	*+,AR1
	SACL	*+,AR2
	LAC	* ,AR1
	SACL	*+
	CALL	F$$DIV
	CALL	F$$MUL
	CALL	_sin
	SBRK	2
	SACL	*+
	SACH	*+
	CALL	F$$ADD
	CALL	F$$DIV
	CALL	F$$MUL
	MAR	*-
	ZALH	*-
	ADDS	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	*+
	SACH	*-
	.line	7
;>>>> 		tmp=(unsigned int)temp;
	LAC	*+,AR1
	SACL	*+,AR2
	LAC	*+,AR1
	SACL	*+
	CALL	F$$FTOU
	MAR	* ,AR2
	SACL	* 
	.line	8
;>>>> 		return tmp;       	
	ZALS	* 
EPI0_2:
	.line	9
	MAR	* ,AR1
	SBRK	5
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	45,000000000H,4

	.sym	_DACSinOut,_DACSinOut,32,2,0
	.globl	_DACSinOut

	.func	47
;>>>> 	void DACSinOut(unsigned int count)
******************************************************
* FUNCTION DEF : _DACSinOut
******************************************************
_DACSinOut:

LF3	.set	0

	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,4
	LAR	AR0,*0+,AR2

	.sym	_count,-3+LF3,14,9,16
	.sym	_tmp,1,14,1,16
	.sym	_i,2,4,1,16
	.sym	_j,3,4,1,16
	.line	2
;>>>> 	    unsigned int tmp;
;>>>> 	    int i,j;
	.line	5
;>>>> 	    for(i=0; i<count; i++)
	LACK	0
	LARK	AR2,2
	MAR	*0+
	SACL	* 
	ZALS	* 
	SBRK	5-LF3
	SUBS	* 
	BGEZ	L4
	ADRK	6-LF3
	SSXM ;;;
L3:
	.line	7
;>>>> 			for(j=0;j<360;j++)
	LACK	0
	SACL	* 
	LAC	* 
	SUBK	360
	BGEZ	L6
L5:
	.line	9
;>>>> 	        	tmp=GetSin(j);
	LAC	* ,AR1
	SACL	*+
	CALL	_GetSin
	MAR	*-,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	* ,AR1
	.line	10
;>>>> 				delay(10);
	LACK	10
	SACL	*+
	CALL	_delay
	MAR	*-,AR2
	.line	11
;>>>> 				DAC0=tmp;
	LARK	AR2,1
	MAR	*0+
	OUT	* ,00h
	.line	12
;>>>> 				DAC1=tmp;
	OUT	* ,01h
	.line	13
;>>>> 				DAC2=tmp;
	OUT	* ,02h
	.line	14
;>>>> 				DAC3=tmp;
	OUT	* ,03h
	.line	7
	ADRK	2
	LAC	* 
	ADDK	1
	SACL	* 
	SSXM
	LAC	* 
	SUBK	360
	BLZ	L5
L6:
	.line	5
	MAR	*-
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	SBRK	5-LF3
	SUBS	* 
	ADRK	6-LF3
	BLZ	L3
L4:
EPI0_3:
	.line	17
	MAR	* ,AR1
	SBRK	5
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	63,000000000H,4
*************************************************
* DEFINE FLOATING POINT CONSTANTS               *
*************************************************
	.text
FL0:	.float	2.e3
FL1:	.float	2.
FL2:	.float	1.
FL3:	.float	3.1416
FL4:	.float	1.8e2
*****************************************************
* UNDEFINED REFERENCES                              *
*****************************************************
	.global	F$$UTOF
	.global	F$$DIV
	.global	F$$MUL
	.global	F$$ADD
	.global	F$$FTOU
	.global	_delay
	.end

⌨️ 快捷键说明

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