📄 f243qep2.lst
字号:
94 0012 bf0b LAR AR3,#T2CNT ; ARP=AR2. AR0->FR0 AR2->down_count_offset AR3->T2CNT.
0013 7405
95 ;--------------------------------------------------------------------------------
96 0014 8b8b MAR *,AR3 ; ARP=AR3. AR0->FR0 AR2->down_count_offset AR3->T2CNT.
97 ;--------------------------------------------------------------------------------
98 0015 108a LACC *,AR2 ; Get current ccounter value in ACC.
99 ; ARP=AR2. AR0->FR0 AR2->down_count_offset AR3->T2CNT.
100 ;--------------------------------------------------------------------------------
101 0016 6690 SUBS *- ; Subtract the down count offset.
102 ; ARP=AR2. AR0->FR0 AR2->QEP_dir
103 ; AR3->T2CNT.
104 ;--------------------------------------------------------------------------------
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Tue May 6 12:42:41 2003
Copyright (c) 1987-1999 Texas Instruments Incorporated
f243qep2.asm PAGE 3
105 0017 aea0 SPLK #0ffffh,*+ ; Indicate down_count
0018 ffff
106 ; ARP=AR2. AR0->FR0 AR2->down_count_offset AR3->T2CNT.
107 ;--------------------------------------------------------------------------------
108 0019 7980 B UC_01 ; ARP=AR2. AR0->FR0 AR2->theta_raw AR3->T2CNT.
001a 001f'
109 ;--------------------------------------------------------------------------------
110 ; On arrival
111 001b UP_COUNT: ; ARP=AR2. AR0->FR0 AR2->down_count_offset AR3->GPTCON.
112
113 001b bf0b LAR AR3,#T2CNT ; ARP=AR2. AR0->FR0 AR2->down_count_offset AR3->T2CNT.
001c 7405
114 ;--------------------------------------------------------------------------------
115 001d 8b8b MAR *,AR3 ; ARP=AR2. AR0->FR0 AR2->down_count_offset AR3->T2CNT.
116 ;--------------------------------------------------------------------------------
117 001e 108a LACC *,AR2 ; Get current ccounter value in ACC.
118 ; ARP=AR2. AR0->FR0 AR2->down_count_offset AR3->T2CNT.
119 ;--------------------------------------------------------------------------------
120 001f b800 UC_01 ADD #CAL_ANGLE ; add offset amount
121 ; ARP=AR2. AR0->FR0 AR2->down_count_offset AR3->T2CNT.
122 ;--------------------------------------------------------------------------------
123 0020 7801 ADRK #1 ; ARP=AR2. AR0->FR0 AR2->theta_raw AR3->T2CNT.
124 ;--------------------------------------------------------------------------------
125 0021 9080 SACL * ; store raw angle.
126 ; ARP=AR2. AR0->FR0 AR2->theta_raw AR3->T2CNT.
127 ;--------------------------------------------------------------------------------
128 0022 bfa0 SUB #ENCODER_MAX ; Check for wrap-around.
0023 0fa0
129 ; ARP=AR2. AR0->FR0 AR2->theta_raw AR3->T2CNT.
130 ;--------------------------------------------------------------------------------
131 0024 e3cc BCND NO_WRAP, LEQ ; If yes "wrap-around" the angle value
0025 002a'
132 ; ARP=AR2. AR0->FR0 AR2->theta_raw AR3->T2CNT.
133 ;--------------------------------------------------------------------------------
134 0026 WRAP:
135 0026 1080 LACC * ; Get raw angle.
136 ; ARP=AR2. AR0->FR0 AR2->theta_raw AR3->T2CNT.
137 ;--------------------------------------------------------------------------------
138 0027 bfa0 SUB #ENCODER_MAX ; New theta = theta + Cal_angle - ENCODER_MAX
0028 0fa0
139 ; ARP=AR2. AR0->FR0 AR2->theta_raw AR3->T2CNT.
140 ;--------------------------------------------------------------------------------
141 0029 9080 SACL *
142 ; ARP=AR2. AR0->FR0 AR2->theta_raw AR3->T2CNT.
143 ;--------------------------------------------------------------------------------
144 002a NO_WRAP: ; Calculate Mechanical angle
145 002a 73a0 LT *+ ; Load "raw" Mech angle
146 ; ARP=AR2. AR0->FR0 AR2->mech_scaler AR3->T2CNT.
147 ;--------------------------------------------------------------------------------
148 002b 54a0 MPY *+ ; Scale Mech angle to Q15 (0-->7FFF)
149 ; ARP=AR2. AR0->FR0 AR2->pole_pairs AR3->T2CNT.
150 ;--------------------------------------------------------------------------------
151 002c be03 PAC ; ARP=AR2. AR0->FR0 AR2->pole_pairs AR3->T2CNT.
152 ;--------------------------------------------------------------------------------
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Tue May 6 12:42:41 2003
Copyright (c) 1987-1999 Texas Instruments Incorporated
f243qep2.asm PAGE 4
153 002d 7380 LT * ; ARP=AR2. AR0->FR0 AR2->pole_pairs AR3->T2CNT.
154 ;--------------------------------------------------------------------------------
155 002e 7c05 SBRK #5 ; ARP=AR2. AR0->FR0 AR2->theta_mech AR3->T2CNT.
156 ;--------------------------------------------------------------------------------
157 002f 9d80 SACH *,5 ; Store mechanical angle
158 ; ARP=AR2. AR0->FR0 AR2->theta_mech AR3->T2CNT.
159 ;--------------------------------------------------------------------------------
160 0030 5490 MPY *- ; pole_pairs*theta_mech.
161 ; ARP=AR2. AR0->FR0 AR2->theta_elec AR3->T2CNT.
162 ;--------------------------------------------------------------------------------
163 0031 be03 PAC ; ARP=AR2. AR0->FR0 AR2->theta_mech AR3->T2CNT.
164 ;--------------------------------------------------------------------------------
165 0032 bfb0 AND #7fffh ;force to Q15 positive and allow wrap
0033 7fff
166 ; ARP=AR2. AR0->FR0 AR2->theta_elec AR3->T2CNT.
167 ;--------------------------------------------------------------------------------
168 0034 9089 SACL *,AR1
169
170 0035 _F243_qep_theta_calc_end:
171
172 ;;;; MAR *,AR1 ; can be removed if this condition is met on
173 ;;;; ; every path to this code.
174
175 0035 7c02 SBRK #(__F243_qep_theta_calc_framesize+1)
176 0036 0090 LAR AR0,*-
177 0037 7680 PSHD *
178 0038 ef00 RET
179
No Errors, No Warnings
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -