?? evm_qep.asm
字號(hào):
*******************************************************
* TMS320C2x/C2xx/C5x ANSI C Codegen Beta Version 6.63
*******************************************************
; C:\DSP\2XX\DSPTOOLS\CGT\6.63B\dspac.exe -v2xx -i..\include ..\source\evm_qep.c C:\WINDOWS\TEMP\evm_qep.if
; C:\DSP\2XX\DSPTOOLS\CGT\6.63B\dspopt.exe -v2xx -s -O2 C:\WINDOWS\TEMP\evm_qep.if C:\WINDOWS\TEMP\evm_qep.opt
; C:\DSP\2XX\DSPTOOLS\CGT\6.63B\dspcg.exe -v2xx -o -n -o -n -o C:\WINDOWS\TEMP\evm_qep.opt C:\WINDOWS\TEMP\evm_qep.asm C:\WINDOWS\TEMP\evm_qep.tmp
.port
.file "..\source\evm_qep.c"
.file "..\include\evm_qep.h"
.globl _qep_rollover
.globl _qep_diff
.globl _QEP_GetIncr
.globl _QEP_Init
.file "..\source\evm_qep.c"
.sect "evm_qep"
.bss _qep_rollover,1
.bss _qep_diff,1
.bss _qep_temp,1
.text
.sym _QEP_Init,_QEP_Init,32,2,0
.globl _QEP_Init
.func 46
;>>>> void QEP_Init(unsigned zero_position, unsigned rollover)
******************************************************
* FUNCTION DEF : _QEP_Init
******************************************************
_QEP_Init:
LF1 .set 1
SAR AR0,*+
SAR AR1,*
LAR AR0,*+,AR3
.sym _zero_position,-3+LF1,14,9,16
.sym _rollover,-4+LF1,14,9,16
.line 2
*** 48 ----------------------- *(unsigned*)0x7092 |= 0x30u;
.line 3
;>>>> OCRB |= 0x30; /* enable qep1/2 mux'd inputs */
LARK AR3,28818
LACK 48
OR *
SACL * ,AR4
*** 50 ----------------------- *(unsigned*)0x7408 = 0xd83au;
.line 5
;>>>> T2CON = 0xD83A; /* enable qep circuit using timer2 */
LARK AR4,29704
SPLK #55354,*
*** 56 ----------------------- *(unsigned*)0x7408 |= 0x40u;
.line 11
;>>>> T2CON |= 0x0040; /* enable timer 2 */
LACK 64
OR *
SACL *
*** 58 ----------------------- *(unsigned*)0x7420 &= 0x1d0fu;
.line 13
;>>>> CAPCON &= 0x1D0F;
ADRK 24
LACK 7439
AND *
SACL *
*** 59 ----------------------- *(unsigned*)0x7420 |= 0xe000u;
.line 14
;>>>> CAPCON |= 0xE000; /* enable qep decoder circuit */
LACK 57344
OR *
SACL * ,AR2
*** 62 ----------------------- *(unsigned*)0x7405 = zero_position;
.line 17
;>>>> T2CNT = zero_position;
LARK AR2,-3+LF1
MAR *0+
LAC * ,AR4
SBRK 27
SACL * ,AR2
*** 63 ----------------------- qep_rollover = rollover;
.line 18
;>>>> qep_rollover = rollover;
MAR *-
BLDD * ,#_qep_rollover
*** 64 ----------------------- qep_diff = 0;
.line 19
;>>>> qep_diff = 0;
LACK 0
LDPK _qep_diff
SACL _qep_diff
*** ----------------------- return;
EPI0_1:
.line 20
MAR * ,AR1
SBRK 2
LAR AR0,*
RET
.endfunc 65,000000000H,1
.text
.def _qep_rollover
.def _qep_diff
.def _qep_temp
.def _QEP_GetIncr
T2CNT .set 7405h
_QEP_GetIncr:
;read timer 2 counter
;--------------------
ldp #T2CNT/128
lacc T2CNT
ldp #_qep_temp
sacl _qep_temp ;save temporarely
;modulo calculation
;------------------
check: lacc _qep_temp,16
sub _qep_diff,16
bcnd Nega,lt ; ACC negative
sub _qep_rollover,16
bcnd OK, lt ; ACC is OK
lacc _qep_diff,16
add _qep_rollover,16
sach _qep_diff
b check;
Nega: lacc _qep_diff,16
sub _qep_rollover,16
sach _qep_diff
b check
OK: add _qep_rollover,16
EPI: sach _qep_temp
lacc _qep_temp ;ACC = Return Value
ret
.end
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -