📄 qep.asm
字号:
*******************************************************
* TMS320C24xx ANSI C Codegen Version 7.04
*******************************************************
; dspac -v2xx -iD:/CCStudio_v3.1/c2400/cgtools/include qep.c C:\DOCUME~1\ADMINI~1.GUO\LOCALS~1\Temp\qep.if
; dspopt NOT RUN
; dspcg -o -v2xx -o C:\DOCUME~1\ADMINI~1.GUO\LOCALS~1\Temp\qep.if C:\DOCUME~1\ADMINI~1.GUO\LOCALS~1\Temp\qep.asm C:\DOCUME~1\ADMINI~1.GUO\LOCALS~1\Temp\qep.tmp
.port
.bss _autoUp_flag,1,1
.bss _counter1,2,1
.bss _auto_qubai,1
.file "qep.c"
.file "f2407_c.h"
.globl _portFF0F
.globl _portFFFF
.file "qep.c"
.globl _QEPINIT
.globl _clearqep
.globl _AutoUp
.globl _SetQep
.globl _pc_fangbai
.globl _MaxerQep
.globl _Encode_counter
.globl _uiAutoUpPara1
.globl _uiAutoUpPara2
.globl _uiAutoUpPara3
.globl _uiAutoUpPara4
.globl _counter1
.globl _Maxest_counter
.globl _Maxer_counter
.globl _auto_qubai
.globl _autoUp_flag
.text
.sym _QEPINIT,_QEPINIT,32,2,0
.globl _QEPINIT
.func 27
;>>>> void QEPINIT()
******************************************************
* FUNCTION DEF : _QEPINIT
******************************************************
_QEPINIT:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+,AR3
.line 3
;>>>> *T2PR = 0x0ffff; //T2's T is 0Xffff
LARK AR3,29703
SPLK #65535,*+
.line 4
;>>>> *T2CON = 0x1870; //T2 +/- source from Encode
SPLK #6256,*
.line 5
;>>>> *T2CNT = 0x0; //clr T2
LACK 0
SBRK 3
SACL * ,AR0
.line 6
;>>>> WSGR = 0x0000;
SACL *
OUT * ,0ffffh,AR3
.line 7
;>>>> *CAPCONA = 0x0E000;
ADRK 27
SPLK #57344,* ,AR1
EPI0_1:
.line 8
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 34,000000000H,1
.sym _ClearQep,_ClearQep,32,2,0
.globl _ClearQep
.func 39
;>>>> void ClearQep()
******************************************************
* FUNCTION DEF : _ClearQep
******************************************************
_ClearQep:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+,AR3
.line 3
;>>>> *T2PR = 0x0ffff; //T2's T is 0Xffff
LARK AR3,29703
SPLK #65535,*+
.line 4
;>>>> *T2CON = 0x1870; //T2 +/- source from Encode
SPLK #6256,*
.line 5
;>>>> *T2CNT = 0x0; //clr T2
LACK 0
SBRK 3
SACL *
.line 6
;>>>> *CAPCONA = 0x0E000;
ADRK 27
SPLK #57344,* ,AR1
.line 7
;>>>> Maxest_counter = 0;
LDPK _Maxest_counter
SACL _Maxest_counter
SACH _Maxest_counter+1
EPI0_2:
.line 8
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 46,000000000H,1
.sym _SetQep,_SetQep,32,2,0
.globl _SetQep
.func 51
;>>>> void SetQep(unsigned int uiangle)
******************************************************
* FUNCTION DEF : _SetQep
******************************************************
_SetQep:
LF3 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+,AR2
.sym _uiangle,-3+LF3,14,9,16
.line 2
.line 3
;>>>> *T2CNT = ~uiangle + 1; //clr T2
;>>>> // *CAPCONA = 0x0E000;
LARK AR2,-3+LF3
MAR *0+
LAC * ,AR3
CMPL
ADDK 1
LARK AR3,29701
SACL * ,AR1
EPI0_3:
.line 5
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 55,000000000H,1
.sym _MaxerQep,_MaxerQep,47,2,0
.globl _MaxerQep
.func 60
;>>>> unsigned long MaxerQep()
;>>>> unsigned long maxest;
******************************************************
* FUNCTION DEF : _MaxerQep
******************************************************
_MaxerQep:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,5
LAR AR0,*0+,AR2
.sym _maxest,1,15,1,32
.line 4
;>>>> maxest = Maxer_counter;
LARK AR2,1
MAR *0+
RPTK 1
BLKD #_Maxer_counter,*+
.line 5
;>>>> if((Encode_counter & 0xffff) < 0x7fff)
LDPK _Encode_counter
ZALS _Encode_counter
ANDK 65535
SACL *+
SACH *-
LT *+
MPYK 1
LPH *
LACK 32767
SPAC
BNC L1
BZ L1
.line 7
;>>>> if(*T2CNT > Maxer_counter )
LARK AR3,29701
MAR * ,AR3
ZALS *
LDPK _Maxer_counter
LT _Maxer_counter
MPYK 1
LPH _Maxer_counter+1
SPAC
BNC L2
BZ L2
.line 8
;>>>> maxest = *T2CNT;
ZALS * ,AR2
SBRK 3
SACL *+
SACH *
L2:
.line 9
;>>>> autoUp_flag=1;
LACK 1
LDPK _autoUp_flag
SACL _autoUp_flag
.line 10
;>>>> pc_fangbai = 0x0;
LACK 0
LDPK _pc_fangbai
SACL _pc_fangbai
L1:
.line 12
;>>>> Maxer_counter = maxest;
MAR * ,AR2
LARK AR2,1
MAR *0+
RPTK 1
BLDD *+,#_Maxer_counter
.line 13
;>>>> return (maxest);
SBRK 2
ZALS *+
ADDH *
EPI0_4:
.line 14
MAR * ,AR1
SBRK 6
LAR AR0,*-
PSHD *
RET
.endfunc 73,000000000H,5
.sym _AutoUp,_AutoUp,32,2,0
.globl _AutoUp
.func 78
;>>>> void AutoUp()
;>>>> unsigned long counter2;
******************************************************
* FUNCTION DEF : _AutoUp
******************************************************
_AutoUp:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,7
LAR AR0,*0+,AR2
.sym _counter2,1,15,1,32
.line 4
;>>>> counter2 = counter1;
LARK AR2,1
MAR *0+
RPTK 1
BLKD #_counter1,*+
.line 5
;>>>> counter1 = Encode_counter;
LDPK _Encode_counter
ZALS _Encode_counter
ADDH _Encode_counter+1
LDPK _counter1
SACL _counter1
SACH _counter1+1
.line 6
;>>>> if((counter1 < counter2) && ((counter1 & 0x00ffff)>0x7fff))
SBRK 2
LT *+
MPYK 1
LPH *
ZALS _counter1
ADDH _counter1+1
SPAC
BC L3
ZALS _counter1
ANDK 65535
MAR *+
SACL *+
SACH *-
LT *+
MPYK 1
LPH *
LACK 32767
SPAC
BC L3
.line 8
;>>>> if(counter1 > 0xff69)
LT _counter1
MPYK 1
LPH _counter1+1
RSXM
LACK 65385
SPAC
BNC L3
.line 12
;>>>> else if(counter1>0xfb1d && counter1 < 0xff69)
LT _counter1
MPYK 1
LPH _counter1+1
LACK 64285
SPAC
BC L6
LT _counter1
MPYK 1
LPH _counter1+1
LACK 65385
SPAC
BNC L6
BZ L6
.line 14
;>>>> if(((counter2-counter1) < (uiAutoUpPara2 * 4)) && ((counter2-counter1)>uiAutoUpPara1))
LDPK _uiAutoUpPara2
LAC _uiAutoUpPara2,2
ANDK 0FFFFh
MAR *-
SACL *+
SACH *
SBRK 3
ZALS *+
ADDH *+
LDPK _counter1
SUBS _counter1
SUBH _counter1+1
LT *+
MPYK 1
LPH *
SPAC
BC L3
LDPK _uiAutoUpPara1
ZALS _uiAutoUpPara1
MAR *+
SACL *+
SACH *
SBRK 5
ZALS *+
ADDH *
LDPK _counter1
SUBS _counter1
SUBH _counter1+1
ADRK 3
LT *+
MPYK 1
LPH *
SPAC
BNC L3
BZ L3
.line 16
;>>>> auto_qubai = 0x1;
LACK 1
SACL _auto_qubai
B L3
L6:
.line 19
;>>>> else if(Encode_counter>0xf159)
LDPK _Encode_counter
LT _Encode_counter
MPYK 1
LPH _Encode_counter+1
LACK 61785
SPAC
BC L8
.line 21
;>>>> if(((counter2-counter1)<(uiAutoUpPara3* 4)) && ((counter2-counter1)>uiAutoUpPara1))
LDPK _uiAutoUpPara3
LAC _uiAutoUpPara3,2
ANDK 0FFFFh
MAR *-
SACL *+
SACH *
SBRK 3
ZALS *+
ADDH *+
LDPK _counter1
SUBS _counter1
SUBH _counter1+1
LT *+
MPYK 1
LPH *
SPAC
BC L3
LDPK _uiAutoUpPara1
ZALS _uiAutoUpPara1
MAR *+
SACL *+
SACH *
SBRK 5
ZALS *+
ADDH *
LDPK _counter1
SUBS _counter1
SUBH _counter1+1
ADRK 3
LT *+
MPYK 1
LPH *
SPAC
BNC L3
BZ L3
.line 23
;>>>> auto_qubai = 0x1;
;>>>> else
LACK 1
SACL _auto_qubai
B L3
L8:
.line 28
;>>>> if(((counter2-counter1)<(uiAutoUpPara4* 4)) && ((counter2-counter1)>uiAutoUpPara1))
LDPK _uiAutoUpPara4
LAC _uiAutoUpPara4,2
ANDK 0FFFFh
MAR *-
SACL *+
SACH *
SBRK 3
ZALS *+
ADDH *+
LDPK _counter1
SUBS _counter1
SUBH _counter1+1
LT *+
MPYK 1
LPH *
SPAC
BC L3
LDPK _uiAutoUpPara1
ZALS _uiAutoUpPara1
MAR *+
SACL *+
SACH *
SBRK 5
ZALS *+
ADDH *
LDPK _counter1
SUBS _counter1
SUBH _counter1+1
ADRK 3
LT *+
MPYK 1
LPH *
SPAC
BNC L3
BZ L3
.line 30
;>>>> auto_qubai = 0x1;
LACK 1
SACL _auto_qubai
L3:
EPI0_5:
.line 39
MAR * ,AR1
SBRK 8
LAR AR0,*-
PSHD *
RET
.endfunc 116,000000000H,7
.sym _autoUp_flag,_autoUp_flag,2,2,16
.globl _autoUp_flag
.sym _counter1,_counter1,15,2,32
.globl _counter1
.sym _auto_qubai,_auto_qubai,2,2,16
.globl _auto_qubai
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -