📄 dac.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 + -