x9c503a.asm
来自「dsp tmslf2407a 汇编,c的原代码,包括i2c,scitimer,f」· 汇编 代码 · 共 844 行
ASM
844 行
*******************************************************
* TMS320C2x/C2xx/C5x ANSI C Codegen Version 7.00
*******************************************************
; C:\tic2xx\c2000\cgtools\bin\dspac.exe -v2xx x9c503a.c C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\x9c503a.if
; dspopt NOT RUN
; C:\tic2xx\c2000\cgtools\bin\dspcg.exe -o -v2xx -o C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\x9c503a.if C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\x9c503a.asm C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\x9c503a.tmp
.port
.file "x9c503a.c"
.file "f2407regs_c.h"
.globl _IMR
.globl _GREG
.globl _IFR
.globl _IMRADDR
.globl _PIRQR0
.globl _PIRQR1
.globl _PIRQR2
.globl _PIACKR0
.globl _PIACKR1
.globl _PIACKR2
.globl _SCSR1
.globl _SCSR2
.globl _DINR
.globl _PIVR
.globl _WDCNTR
.globl _WDKEY
.globl _WDCR
.globl _SPICCR
.globl _SPICTL
.globl _SPISTS
.globl _SPIBRR
.globl _SPIEMU
.globl _SPIRXBUF
.globl _SPITXBUF
.globl _SPIDAT
.globl _SPIPRI
.globl _SCICCR
.globl _SCICTL1
.globl _SCIHBAUD
.globl _SCILBAUD
.globl _SCICTL2
.globl _SCIRXST
.globl _SCIRXEMU
.globl _SCIRXBUF
.globl _SCITXBUF
.globl _SCIPRI
.globl _XINT1CR
.globl _XINT2CR
.globl _PADATDIR
.globl _PBDATDIR
.globl _PCDATDIR
.globl _PDDATDIR
.globl _PEDATDIR
.globl _PFDATDIR
.globl _MCRA
.globl _MCRB
.globl _MCRC
.globl _ADCCTRL1
.globl _ADCCTRL2
.globl _MAXCONV
.globl _CHSELSEQ1
.globl _CHSELSEQ2
.globl _CHSELSEQ3
.globl _CHSELSEQ4
.globl _AUTOSEQSR
.globl _RESULT0
.globl _RESULT1
.globl _RESULT2
.globl _RESULT3
.globl _RESULT4
.globl _RESULT5
.globl _RESULT6
.globl _RESULT7
.globl _RESULT8
.globl _RESULT9
.globl _RESULT10
.globl _RESULT11
.globl _RESULT12
.globl _RESULT13
.globl _RESULT14
.globl _RESULT15
.globl _CALIBRATION
.globl _MDER
.globl _TCR
.globl _RCR
.globl _MCR
.globl _BCR2
.globl _BCR1
.globl _ESR
.globl _GSR
.globl _CEC
.globl _CANIFR
.globl _CANIMR
.globl _LAM0H
.globl _LAM0L
.globl _LAM1H
.globl _LAM1L
.globl _MSGID0L
.globl _MSGID0H
.globl _MSGCTRL0
.globl _MBX0A
.globl _MBX0B
.globl _MBX0C
.globl _MBX0D
.globl _MSGID1L
.globl _MSGID1H
.globl _MSGCTRL1
.globl _MBX1A
.globl _MBX1B
.globl _MBX1C
.globl _MBX1D
.globl _MSGID2L
.globl _MSGID2H
.globl _MSGCTRL2
.globl _MBX2A
.globl _MBX2B
.globl _MBX2C
.globl _MBX2D
.globl _MSGID3L
.globl _MSGID3H
.globl _MSGCTRL3
.globl _MBX3A
.globl _MBX3B
.globl _MBX3C
.globl _MBX3D
.globl _MSGID4L
.globl _MSGID4H
.globl _MSGCTRL4
.globl _MBX4A
.globl _MBX4B
.globl _MBX4C
.globl _MBX4D
.globl _MSGID5L
.globl _MSGID5H
.globl _MSGCTRL5
.globl _MBX5A
.globl _MBX5B
.globl _MBX5C
.globl _MBX5D
.globl _GPTCONA
.globl _T1CNT
.globl _T1CMPR
.globl _T1PR
.globl _T1CON
.globl _T2CNT
.globl _T2CMPR
.globl _T2PR
.globl _T2CON
.globl _COMCONA
.globl _ACTRA
.globl _DBTCONA
.globl _CMPR1
.globl _CMPR2
.globl _CMPR3
.globl _CAPCONA
.globl _CAPFIFOA
.globl _CAP1FIFO
.globl _CAP2FIFO
.globl _CAP3FIFO
.globl _CAP1FBOT
.globl _CAP2FBOT
.globl _CAP3FBOT
.globl _EVAIMRA
.globl _EVAIMRB
.globl _EVAIMRC
.globl _EVAIFRA
.globl _EVAIFRB
.globl _EVAIFRC
.globl _GPTCONB
.globl _T3CNT
.globl _T3CMPR
.globl _T3PR
.globl _T3CON
.globl _T4CNT
.globl _T4CMPR
.globl _T4PR
.globl _T4CON
.globl _COMCONB
.globl _ACTRB
.globl _DBTCONB
.globl _CMPR4
.globl _CMPR5
.globl _CMPR6
.globl _CAPCONB
.globl _CAPFIFOB
.globl _CAP4FIFO
.globl _CAP5FIFO
.globl _CAP6FIFO
.globl _CAP4FBOT
.globl _CAP5FBOT
.globl _CAP6FBOT
.globl _EVBIMRA
.globl _EVBIMRB
.globl _EVBIMRC
.globl _EVBIFRA
.globl _EVBIFRB
.globl _EVBIFRC
.globl _WSGR
.file "x9c503a.c"
.globl _delayX9c503
.globl _setX9c503ToLowest
.globl _adjustX9c503
.globl _judgePower
.text
.sym _delayX9c503,_delayX9c503,32,2,0
.globl _delayX9c503
.func 22
;>>>> void delayX9c503(uchar n)
******************************************************
* FUNCTION DEF : _delayX9c503
******************************************************
_delayX9c503:
LF1 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,2
LAR AR0,*0+,AR2
.sym _n,-3+LF1,12,9,16
.sym _i,1,14,1,16
.line 2
;>>>> uint i;
.line 4
;>>>> for(i=0;i<n;i++)
LACK 0
LARK AR2,1
MAR *0+
SACL *
ZALS *
SBRK 4-LF1
SUBS *
BGEZ L2
ADRK 4-LF1
L1:
.line 6
;>>>> i=i;
LAC *
SACL *
.line 4
LAC *
ADDK 1
SACL *
ZALS *
SBRK 4-LF1
SUBS *
ADRK 4-LF1
BLZ L1
L2:
EPI0_1:
.line 8
MAR * ,AR1
SBRK 3
LAR AR0,*-
PSHD *
RET
.endfunc 29,000000000H,2
.sym _setX9c503ToLowest,_setX9c503ToLowest,32,2,0
.globl _setX9c503ToLowest
.func 34
;>>>> void setX9c503ToLowest()
;>>>> uint i;
******************************************************
* FUNCTION DEF : _setX9c503ToLowest
******************************************************
_setX9c503ToLowest:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,3
LAR AR0,*0+,AR2
.sym _i,1,14,1,16
.sym _n,2,14,1,16
.line 4
;>>>> uint n = 200;
LACK 200
LARK AR2,2
MAR *0+
SACL *-
.line 6
;>>>> dpm_cs_0; // cs=0,open x9c503
LACK 65279
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 256
LDPK _PFDATDIR
OR _PFDATDIR
SACL _PFDATDIR
LACK 65534
AND _PFDATDIR
SACL _PFDATDIR
.line 7
;>>>> for(i=0;i<n;i++)
LACK 0
SACL *
ZALS *+
SUBS *
BGEZ L4
MAR * ,AR1
L3:
.line 9
;>>>> dpm_Vw_0;
LACK 65527
LDPK _MCRA
AND _MCRA
SACL _MCRA
LACK 2048
LDPK _PADATDIR
OR _PADATDIR
SACL _PADATDIR
LACK 65527
AND _PADATDIR
SACL _PADATDIR
.line 10
;>>>> dpm_inc_1; // inc = 1
LACK 65534
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 257
LDPK _PEDATDIR
OR _PEDATDIR
SACL _PEDATDIR
.line 11
;>>>> dpm_ud_0;
LACK 65407
LDPK _MCRC
AND _MCRC
SACL _MCRC
LALK 1,15
LDPK _PEDATDIR
OR _PEDATDIR
SACL _PEDATDIR
LACK 65407
AND _PEDATDIR
SACL _PEDATDIR
.line 12
;>>>> delayX9c503(10);
LACK 10
SACL *+
CALL _delayX9c503
MAR *-
.line 13
;>>>> dpm_inc_0; // inc = 0
LACK 65534
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 257
LDPK _PEDATDIR
OR _PEDATDIR
SACL _PEDATDIR
LACK 65534
AND _PEDATDIR
SACL _PEDATDIR
.line 14
;>>>> delayX9c503(50);
LACK 50
SACL *+
CALL _delayX9c503
MAR *-,AR2
.line 7
LARK AR2,1
MAR *0+
LAC *
ADDK 1
SACL *
ZALS *+
SUBS * ,AR1
BLZ L3
L4:
.line 16
;>>>> dpm_cs_1; //cs=1,close x9c503
LACK 65279
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 257
LDPK _PFDATDIR
OR _PFDATDIR
SACL _PFDATDIR
EPI0_2:
.line 17
MAR * ,AR1
SBRK 4
LAR AR0,*-
PSHD *
RET
.endfunc 50,000000000H,3
.sym _adjustX9c503,_adjustX9c503,32,2,0
.globl _adjustX9c503
.func 56
;>>>> void adjustX9c503(uchar dir,uint n)
******************************************************
* FUNCTION DEF : _adjustX9c503
******************************************************
_adjustX9c503:
LF3 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,2
LAR AR0,*0+,AR2
.sym _dir,-3+LF3,12,9,16
.sym _n,-4+LF3,14,9,16
.sym _i,1,14,1,16
.line 2
;>>>> uint i;
.line 5
;>>>> dpm_cs_0;
LACK 65279
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 256
LDPK _PFDATDIR
OR _PFDATDIR
SACL _PFDATDIR
LACK 65534
AND _PFDATDIR
SACL _PFDATDIR
.line 6
;>>>> if(dir)
LARK AR2,-3+LF3
MAR *0+
LAC *
BZ L5
.line 8
;>>>> dpm_ud_1; //u/d=0,increase
LACK 65407
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 32896
LDPK _PEDATDIR
OR _PEDATDIR
SACL _PEDATDIR
.line 9
;>>>> for(i=0;i<n;i++)
LACK 0
ADRK 4-LF3
SACL *
ZALS *
SBRK 5-LF3
SUBS *
BGEZ L8
MAR * ,AR1
L6:
.line 11
;>>>> dpm_inc_1; // inc = 1
LACK 65534
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 257
LDPK _PEDATDIR
OR _PEDATDIR
SACL _PEDATDIR
.line 12
;>>>> delayX9c503(10);
LACK 10
SACL *+
CALL _delayX9c503
MAR *-
.line 13
;>>>> dpm_inc_0; // inc = 0
LACK 65534
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 257
LDPK _PEDATDIR
OR _PEDATDIR
SACL _PEDATDIR
LACK 65534
AND _PEDATDIR
SACL _PEDATDIR
.line 14
;>>>> delayX9c503(50);
;>>>> else
LACK 50
SACL *+
CALL _delayX9c503
MAR *-,AR2
.line 9
LARK AR2,1
MAR *0+
LAC *
ADDK 1
SACL *
ZALS *
SBRK 5-LF3
SUBS * ,AR1
BLZ L6
B L8
L5:
.line 19
;>>>> dpm_ud_0; //u/d=0,decrease
LACK 65407
LDPK _MCRC
AND _MCRC
SACL _MCRC
LALK 1,15
LDPK _PEDATDIR
OR _PEDATDIR
SACL _PEDATDIR
LACK 65407
AND _PEDATDIR
SACL _PEDATDIR
.line 20
;>>>> for(i=0;i<n;i++)
LACK 0
ADRK 4-LF3
SACL *
ZALS *
SBRK 5-LF3
SUBS *
BGEZ L8
MAR * ,AR1
L9:
.line 22
;>>>> dpm_inc_1; // inc = 1
LACK 65534
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 257
LDPK _PEDATDIR
OR _PEDATDIR
SACL _PEDATDIR
.line 23
;>>>> delayX9c503(10);
LACK 10
SACL *+
CALL _delayX9c503
MAR *-
.line 24
;>>>> dpm_inc_0; // inc = 0
LACK 65534
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 257
LDPK _PEDATDIR
OR _PEDATDIR
SACL _PEDATDIR
LACK 65534
AND _PEDATDIR
SACL _PEDATDIR
.line 25
;>>>> delayX9c503(50);
LACK 50
SACL *+
CALL _delayX9c503
MAR *-,AR2
.line 20
LARK AR2,1
MAR *0+
LAC *
ADDK 1
SACL *
ZALS *
SBRK 5-LF3
SUBS * ,AR1
BLZ L9
L8:
.line 28
;>>>> dpm_cs_1; //cs=1,close x9c503
LACK 65279
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 257
LDPK _PFDATDIR
OR _PFDATDIR
SACL _PFDATDIR
EPI0_3:
.line 29
MAR * ,AR1
SBRK 3
LAR AR0,*-
PSHD *
RET
.endfunc 84,000000000H,2
.sym _judgePower,_judgePower,32,2,0
.globl _judgePower
.func 85
;>>>> void judgePower()
******************************************************
* FUNCTION DEF : _judgePower
******************************************************
_judgePower:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,10
LAR AR0,*0+,AR2
.sym _i,1,14,1,16
.sym _j,2,14,1,16
.sym _data,3,14,1,16
.sym _flag,4,14,1,16
.sym _result,5,62,1,80,,5
.line 3
;>>>> uint i,j,data = 0;
LACK 0
LARK AR2,3
MAR *0+
SACL *+
.line 4
;>>>> uint flag = 0;
;>>>> uint result[5];
SACL *
.line 7
;>>>> for(j=0;j<2;j++)
SBRK 2
SACL *
ZALS *
SUBK 2
BGEZ L12
MAR *+
RSXM ;;;
L11:
.line 9
;>>>> ADCCTRL1 = 0x0030;
LACK 48
LDPK _ADCCTRL1
SACL _ADCCTRL1
.line 10
;>>>> asm(" nop");
nop
.line 11
;>>>> ADCCTRL2 = 0x6000;
LACK 24576
LDPK _ADCCTRL2
SACL _ADCCTRL2
.line 12
;>>>> CHSELSEQ1 = 0x0C;
LACK 12
LDPK _CHSELSEQ1
SACL _CHSELSEQ1
.line 13
;>>>> MAXCONV = 0x00;
LACK 0
LDPK _MAXCONV
SACL _MAXCONV
.line 14
;>>>> asm(" CLRC SXM");
CLRC SXM
.line 16
;>>>> data = RESULT0;
BLKD #_RESULT0,*
.line 17
;>>>> data = data >> 6;
LAC * ,9
SACH *-,1
.line 18
;>>>> result[j] = data;
;>>>> } //清除开机产生的误差数据
LAR AR3,*+,AR3
MAR *0+,AR2
LAC * ,AR3
ADRK 5
SACL * ,AR2
.line 7
MAR *-
LAC *
ADDK 1
SACL *
ZALS *+
SUBK 2
BLZ L11
L12:
.line 21
;>>>> for(j=0;j<5;j++)
LACK 0
LARK AR2,2
MAR *0+
SACL *
ZALS *
SUBK 5
BGEZ L14
MAR *+
RSXM ;;;
L13:
.line 23
;>>>> ADCCTRL1 = 0x0030;
LACK 48
LDPK _ADCCTRL1
SACL _ADCCTRL1
.line 24
;>>>> asm(" nop");
nop
.line 25
;>>>> ADCCTRL2 = 0x6000;
LACK 24576
LDPK _ADCCTRL2
SACL _ADCCTRL2
.line 26
;>>>> CHSELSEQ1 = 0x04;
LACK 4
LDPK _CHSELSEQ1
SACL _CHSELSEQ1
.line 27
;>>>> MAXCONV = 0x00;
LACK 0
LDPK _MAXCONV
SACL _MAXCONV
.line 28
;>>>> asm(" CLRC SXM");
CLRC SXM
.line 30
;>>>> data = RESULT0;
BLKD #_RESULT0,*
.line 31
;>>>> data = data >> 6;
LAC * ,9
SACH *-,1
.line 32
;>>>> result[j] = data;
LAR AR3,*+,AR3
MAR *0+,AR2
LAC * ,AR3
ADRK 5
SACL * ,AR2
.line 21
MAR *-
LAC *
ADDK 1
SACL *
ZALS *+
SUBK 5
BLZ L13
L14:
.line 34
;>>>> data = (result[0]+result[1]+result[2]+result[3]+result[4])/5;
MAR * ,AR1
LACK 5
SACL *+,AR2
LARK AR2,6
MAR *0+
ZALS *-
ADDS * ,AR1
SACL *
ZALS * ,AR2
ADRK 2
ADDS *+,AR1
SACL *
ZALS * ,AR2
ADDS *+,AR1
SACL *
ZALS * ,AR2
ADDS * ,AR1
ANDK 0FFFFh
CALL I$$UDIV
MAR * ,AR2
SBRK 6
SACL *
.line 35
;>>>> if( (data>=0x2f8) && (data<=0x210) )
;>>>> while(1)
ZALS *
SUBK 760
BLZ L15
ZALS *
SUBK 528
BGZ L15
MAR * ,AR1
L16:
.line 39
;>>>> feedWatchDog();
CALL _feedWatchDog,AR1
.line 40
;>>>> Delay_100_Milli_Seconds(); //100ms
CALL _Delay_100_Milli_Seconds
.line 41
;>>>> if(flag==0){LedOutput2(0);flag=1;}
MAR * ,AR2
LARK AR2,4
MAR *0+
LAC *
BNZ L18
MAR * ,AR1
LACK 0
SACL *+
CALL _LedOutput2
MAR *-,AR2
LACK 1
LARK AR2,4
MAR *0+
SACL *
B L19
L18:
.line 42
;>>>> else{LedOutput2(1);flag=0;} //报警出错闪烁
MAR * ,AR1
LACK 1
SACL *+
CALL _LedOutput2
MAR *-,AR2
LACK 0
LARK AR2,4
MAR *0+
SACL *
L19:
.line 43
MAR * ,AR1
B L16
L15:
EPI0_4:
.line 45
MAR * ,AR1
SBRK 11
LAR AR0,*-
PSHD *
RET
.endfunc 129,000000000H,10
*****************************************************
* UNDEFINED REFERENCES *
*****************************************************
.global I$$UDIV
.global _feedWatchDog
.global _Delay_100_Milli_Seconds
.global _LedOutput2
.end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?