?? monitor.asm
字號:
*******************************************************
* TMS320C2x/C2xx/C5x ANSI C Codegen Beta Version 6.63
*******************************************************
; C:\DSP\2XX\DSPTOOLS\CGT\6.63B\dspac.exe -v2xx -iencoder\include -irs232\include monitor.c C:\WINDOWS\TEMP\monitor.if
; C:\DSP\2XX\DSPTOOLS\CGT\6.63B\dspopt.exe -v2xx -s -O2 -Z C:\WINDOWS\TEMP\monitor.if C:\WINDOWS\TEMP\monitor.opt
; C:\DSP\2XX\DSPTOOLS\CGT\6.63B\dspcg.exe -v2xx -o -s -o -n -o C:\WINDOWS\TEMP\monitor.opt C:\WINDOWS\TEMP\monitor.asm C:\WINDOWS\TEMP\monitor.tmp
.port
.bss _qep_sample$1,1,1
.file "monitor.c"
.file "c:\dsp\2xx\dsptools\cgt\6.63b\stdlib.h"
.sym _size_t,0,14,13,16
.sym _wchar_t,0,4,13,16
.globl _atoi
.globl _atol
.globl _atof
.globl _strtod
.globl _strtol
.globl _strtoul
.stag __div_t,32
.member _quot,0,4,8,16
.member _rem,16,4,8,16
.eos
.sym _div_t,0,8,13,32,__div_t
.stag __ldiv_t,64
.member _quot,0,5,8,32
.member _rem,32,5,8,32
.eos
.sym _ldiv_t,0,8,13,64,__ldiv_t
.globl _div
.globl _ldiv
.globl _rand
.globl _srand
.globl _calloc
.globl _free
.globl _malloc
.globl _minit
.globl _realloc
.globl _abort
.globl _exit
.globl _atexit
.globl _abs
.globl _labs
.globl _qsort
.globl _bsearch
.globl _getenv
.globl _ti_sprintf
.file "c:\dsp\2xx\dsptools\cgt\6.63b\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 "rs232\include\conio.h"
.globl _getch
.globl _putch
.globl _clrscr
.globl _sendstr_PMEM
.globl _sendstr_DMEM
.globl _getline
.globl _getlong
.globl _atol_F240
.globl _read_PMEM
.file "rs232\include\sci.h"
.globl _SCI_Init
.globl _kbhit
.globl _SCI_Getc
.globl _SCI_Sendc
.globl _SCI_Rdy_to_Send
.file "encoder\include\evm_qep.h"
.globl _qep_rollover
.globl _qep_diff
.globl _QEP_GetIncr
.globl _QEP_Init
.file "encoder\include\encoder.h"
QEP_ROLLOVER .set 8192
.globl _encoder_position
.globl _Encoder_Init
.globl _Encoder_ZeroPosition
.globl _Encoder_MatchIncrPhase
.globl _Encoder_CalcPhase
.globl _Encoder_SamplePosition
.globl _Encoder_CalcPosition
.file "monitor.h"
.globl _monitor
.globl _Encoder_MSG
.file "monitor.c"
.text
.sym _monitor,_monitor,32,2,0
.globl _monitor
.func 49
;>>>> void monitor(void)
;>>>> char c;
******************************************************
* FUNCTION DEF : _monitor
******************************************************
_monitor:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,41
LAR AR0,*0+
; <save register vars>
SAR AR6,*+
SAR AR7,*+,AR7
LARK AR7,1
MAR *0+,AR2
.sym _qep_sample,_qep_sample$1,14,3,16
*
* AR5 assigned to variable c
* AR5 assigned to variable i
* AR6 assigned to temp var L$1
* AR6 assigned to temp var L$2
* AR6 assigned to temp var L$3
* AR6 assigned to temp var L$4
* AR6 assigned to temp var L$5
* AR6 assigned to temp var L$6
* --- c shares AUTO storage with Y$3
*
*** 52 ----------------------- b[0] = 0;
.sym Y$1,1,14,1,16
.sym Y$2,2,4,1,16
.sym _c,3,4,1,16
.sym _b,4,52,1,160,,10
.sym _str,14,52,1,320,,20
.sym _val,34,52,1,48,,3
.sym _angle,37,15,1,32
.sym _fbuffer,39,6,1,32
.line 4
;>>>> char b[10]="";
;>>>> char str[20]; /* general purpose buffer */
;>>>> int i; /* general purpose counter */
;>>>> int val[3];
;>>>> static unsigned qep_sample;
;>>>> volatile unsigned long angle;
;>>>> volatile float fbuffer;
LACK 0
LARK AR2,4
MAR *0+
SACL * ,AR1
*** 63 ----------------------- SCI_Init(130u);
.line 15
;>>>> SCI_Init(((SYSCLK*10)/8/BAUDRATE+5)/10);
;>>>> for (;;)
;>>>> clrscr();
;>>>> sendstr_PMEM(header);
;>>>> sendstr_PMEM("\rMain Menu\r");
;>>>> sendstr_PMEM("\r\t1) Encoder Initialization");
;>>>> sendstr_PMEM("\r\t2) ADC1,2 & QEP Test");
;>>>> sendstr_PMEM("\r\t3) Print Encoder Increment & Phase");
;>>>> sendstr_PMEM("\r\t4) Print Position (1/1000 Degrees)");
;>>>> sendstr_PMEM("\r\r Press '1'..'4'. Please make your choice. \r");
;>>>> for (c = 0; c<'1' || c>'6';c = SCI_Getc());
;>>>> switch (c)
;>>>> case '1': /*------------------------*/
;>>>> Encoder_Init(QEP_ROLLOVER);
;>>>> sendstr_PMEM("\r\r");
;>>>> sendstr_PMEM(" +--------------------+\r");
;>>>> sendstr_PMEM(" | Encoder setup done |\r"); /* Screen Output */
;>>>> sendstr_PMEM(" +--------------------+\r");
;>>>> sendstr_PMEM(" >> Press any key to confirm\r");
;>>>> for (c=0; c==0; c = (kbhit() ? getch() : 0) );
;>>>> break;
;>>>> case '2': /*----------------*/
;>>>> clrscr();
;>>>> sendstr_PMEM("\rInput from ADC1, ADC2, QEP: 000000 000000 000000");
;>>>> do
;>>>> sendstr_PMEM("\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
;>>>> sendstr_PMEM("\b\b\b\b\b\b\b");
;>>>> ADC_START(5,13);
;>>>> ADC_READ2(val[0],val[1]);
;>>>> val[0] = (val[0] - ENC_U0_OFFSET) << 1;
;>>>> val[1] = (val[1] - ENC_U90_OFFSET)<< 1;
;>>>> #ifndef QEP_POWER2
;>>>> val[2] = QEP_GetIncr();
;>>>> #else
;>>>> val[2] = (T2CNT - qep_diff) & (QEP_ROLLOVER-1);
;>>>> #endif
;>>>> ltoa ((long)val[0], str);
;>>>> for (i=strlen(str); i<7; i++)
;>>>> sendstr_PMEM(" ");
;>>>> sendstr_DMEM(str);
;>>>> ltoa ((long)val[1], str);
;>>>> for (i=strlen(str); i<7; i++)
;>>>> sendstr_PMEM(" ");
;>>>> sendstr_DMEM(str);
;>>>> ltoa ((unsigned long)val[2], str);
;>>>> for (i=strlen(str); i<7; i++)
;>>>> sendstr_PMEM(" ");
;>>>> sendstr_DMEM(str);
;>>>> } while( SCI_Getc() == -1 );
;>>>> break;
;>>>> case '3': /*----------------------------------*/
;>>>> clrscr();
;>>>> sendstr_PMEM("\rSIN/COS Q-Encoder, Increments, Phase: 000000 000000");
;>>>> do
;>>>> sendstr_PMEM("\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
;>>>> qep_sample = Encoder_SamplePosition();
;>>>> Encoder_CalcPosition(qep_sample);
;>>>> ltoa ((unsigned long) encoder_position[1], str);
;>>>> for (i=strlen(str); i<7; i++)
;>>>> sendstr_PMEM(" ");
;>>>> sendstr_DMEM(str);
;>>>> ltoa ((unsigned long) encoder_position[0], str);
;>>>> for (i=strlen(str); i<7; i++)
;>>>> sendstr_PMEM(" ");
;>>>> sendstr_DMEM(str);
;>>>> } while( SCI_Getc() == -1 );
;>>>> break;
;>>>> case '4': /*----------------*/
LACK 130
SACL *+
CALL _SCI_Init
MAR *-
*** 63 ----------------------- goto g37;
B L37
L1:
*** -----------------------g1:
*** 179 ----------------------- clrscr();
.line 131
;>>>> clrscr();
CALL _clrscr,AR1
*** 180 ----------------------- sendstr_PMEM("\rAngle (1/1000 * Degrees): 000000000");
.line 132
;>>>> sendstr_PMEM("\rAngle (1/1000 * Degrees): 000000000");
;>>>> do
LRLK AR3,SL0
SAR AR3,*+
CALL _sendstr_PMEM
MAR *-
L3:
*** -----------------------g3:
*** 184 ----------------------- sendstr_PMEM("\b\b\b\b\b\b\b\b\b\b");
.line 136
;>>>> sendstr_PMEM("\b\b\b\b\b\b\b\b\b\b");
LRLK AR3,SL1
SAR AR3,*+
CALL _sendstr_PMEM
MAR *-
*** 189 ----------------------- qep_sample = Y$0 = Encoder_SamplePosition();
.line 141
;>>>> qep_sample = Encoder_SamplePosition();
CALL _Encoder_SamplePosition
MAR * ,AR7
SACL * ,AR1
LDPK _qep_sample$1
SACL _qep_sample$1
*** 190 ----------------------- Encoder_CalcPosition(Y$0);
.line 142
;>>>> Encoder_CalcPosition(qep_sample);
SACL *+
CALL _Encoder_CalcPosition
MAR *-,AR2
*** 195 ----------------------- angle = (long)encoder_position[1]<<16;
.line 147
;>>>> angle = ((long) encoder_position[1]) << 16;
LDPK _encoder_position+1
ZALH _encoder_position+1
LARK AR2,37
MAR *0+
SACL *+
SACH *-
*** 196 ----------------------- angle += encoder_position[0];
.line 148
;>>>> angle += (long) encoder_position[0];
LDPK _encoder_position
ZALS _encoder_position
ADDS *+
ADDH *-
SACL *+
SACH *-,AR1
*** 197 ----------------------- fbuffer = (float)angle*7.45058059692383e-9F;
.line 149
;>>>> fbuffer = ((double) angle)/(2048 * 0x10000);
LALK FL0
RPTK 1
TBLR *+
MAR * ,AR2
ZALS *+
ADDH *+,AR1
CALL F$$ULTOF
CALL F$$MUL
MAR *-
ZALH *-
ADDS * ,AR2
SACL *+
SACH *-,AR1
*** 198 ----------------------- fbuffer = fbuffer*3.6e5F;
.line 150
;>>>> fbuffer = fbuffer * 360000;
LALK FL1
RPTK 1
TBLR *+
MAR * ,AR2
LAC *+,AR1
SACL *+,AR2
LAC *-,AR1
SACL *+
CALL F$$MUL
MAR *-
ZALH *-
ADDS * ,AR2
SACL *+
SACH *-
*** 199 ----------------------- angle = (long)fbuffer;
.line 151
;>>>> angle = (long) fbuffer;
LAC *+,AR1
SACL *+,AR2
LAC * ,AR1
SACL *+
CALL F$$FTOL
MAR * ,AR2
SBRK 3
SACL *+
SACH *-,AR3
*** 204 ----------------------- ltoa(angle, &str);
.line 156
;>>>> ltoa (angle, str);
LARK AR3,14
MAR *0+,AR1
SAR AR3,*+,AR2
ZALS *+
ADDH * ,AR1
SACL *+
SACH *+
CALL _ltoa
SBRK 3
*** 205 ----------------------- if ( (i = strlen(&str)) >= 10 ) goto g7;
.line 157
;>>>> for (i=strlen(str); i<10; i++)
MAR * ,AR3
LARK AR3,14
MAR *0+,AR1
SAR AR3,*+
CALL _strlen
MAR *-,AR0
SACL *
LAR AR5,*
SAR AR5,*
SSXM
LAC *
SUBK 10
BGEZ L7
*** ----------------------- L$1 = 9-i;
SAR AR5,*
LACK 9
SUB *
SACL *
LAR AR6,* ,AR1
*** -----------------------g6:
*** -----------------------g50:
L50:
*** 206 ----------------------- sendstr_PMEM(" ");
.line 158
;>>>> sendstr_PMEM(" ");
LRLK AR3,SL2
SAR AR3,*+
CALL _sendstr_PMEM
MAR *-,AR6
*** 205 ----------------------- if ( --L$1 != -1 ) goto g50;
.line 157
BANZ L50,*-,AR1
L7:
*** -----------------------g7:
*** 207 ----------------------- sendstr_DMEM(&str);
.line 159
;>>>> sendstr_DMEM(str);
;>>>> } while( SCI_Getc() == -1 );
MAR * ,AR3
LARK AR3,14
MAR *0+,AR1
SAR AR3,*+
CALL _sendstr_DMEM
MAR *-
*** 210 ----------------------- if ( SCI_Getc() == (-1) ) goto g3;
.line 162
;>>>> break;
CALL _SCI_Getc
SSXM
SUBK -1
BZ L3
*** 210 ----------------------- goto g37;
B L37
L8:
*** -----------------------g8:
*** 147 ----------------------- clrscr();
.line 99
CALL _clrscr,AR1
*** 148 ----------------------- sendstr_PMEM("\rSIN/COS Q-Encoder, Increments, Phase: 000000 000000");
.line 100
LRLK AR3,SL3
SAR AR3,*+
CALL _sendstr_PMEM
MAR *-
L10:
*** -----------------------g10:
*** 152 ----------------------- sendstr_PMEM("\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
.line 104
LRLK AR3,SL4
SAR AR3,*+
CALL _sendstr_PMEM
MAR *-
*** 157 ----------------------- qep_sample = Y$1 = Encoder_SamplePosition();
.line 109
CALL _Encoder_SamplePosition
MAR * ,AR7
SACL * ,AR1
LDPK _qep_sample$1
SACL _qep_sample$1
*** 158 ----------------------- Encoder_CalcPosition(Y$1);
.line 110
SACL *+
CALL _Encoder_CalcPosition
MAR *-,AR3
*** 163 ----------------------- ltoa((unsigned long)encoder_position[1], &str);
.line 115
LARK AR3,14
MAR *0+,AR1
SAR AR3,*+
LDPK _encoder_position+1
ZALS _encoder_position+1
SACL *+
SACH *+
CALL _ltoa
SBRK 3
*** 164 ----------------------- if ( (i = strlen(&str)) >= 7 ) goto g14;
.line 116
MAR * ,AR3
LARK AR3,14
MAR *0+,AR1
SAR AR3,*+
CALL _strlen
MAR *-,AR0
SACL *
LAR AR5,*
SAR AR5,*
SSXM
LAC *
SUBK 7
BGEZ L14
*** ----------------------- L$2 = 6-i;
SAR AR5,*
LACK 6
SUB *
SACL *
LAR AR6,* ,AR1
*** -----------------------g13:
*** -----------------------g49:
L49:
*** 165 ----------------------- sendstr_PMEM(" ");
.line 117
LRLK AR3,SL2
SAR AR3,*+
CALL _sendstr_PMEM
MAR *-,AR6
*** 164 ----------------------- if ( --L$2 != -1 ) goto g49;
.line 116
BANZ L49,*-,AR1
L14:
*** -----------------------g14:
*** 166 ----------------------- sendstr_DMEM(&str);
.line 118
MAR * ,AR3
LARK AR3,14
MAR *0+,AR1
SAR AR3,*+
CALL _sendstr_DMEM
MAR *-,AR3
*** 168 ----------------------- ltoa((unsigned long)encoder_position[0], &str);
.line 120
LARK AR3,14
MAR *0+,AR1
SAR AR3,*+
LDPK _encoder_position
ZALS _encoder_position
SACL *+
SACH *+
CALL _ltoa
SBRK 3
*** 169 ----------------------- if ( (i = strlen(&str)) >= 7 ) goto g18;
.line 121
MAR * ,AR3
LARK AR3,14
MAR *0+,AR1
SAR AR3,*+
CALL _strlen
MAR *-,AR0
SACL *
LAR AR5,*
SAR AR5,*
SSXM
LAC *
SUBK 7
BGEZ L18
*** ----------------------- L$3 = 6-i;
SAR AR5,*
LACK 6
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -