📄 f2407bldcpwm2.lst
字号:
156 ; AR2-> FR1.
157 ;--------------------------------------------------------------------------
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Tue May 6 12:42:13 2003
Copyright (c) 1987-1999 Texas Instruments Incorporated
f2407bldcpwm2.asm PAGE 4
158 0016 __PWM_state_anc: ; Input current path Phase A
159 0016 POINT_EV ; Output Current Path Phase C
1 0016 bce8 LDP #0E8h
160
161 0017 ae13 SPLK #0C02h,ACTRA
0018 0c02
162 ; Non Fed Phase Phase B
163 ; *ACTR = 0x0C02.
164
165 0019 7980 B __PWM_state_end
001a 002d'
166 ; ARP = AR3. AR3 -> mfunc_p.
167 ; AR2-> FR1.
168 ;--------------------------------------------------------------------------
169 001b __PWM_state_bnc: ; Input current path Phase B
170 001b POINT_EV ; Output Current Path Phase C
1 001b bce8 LDP #0E8h
171
172 001c ae13 SPLK #0C20h,ACTRA
001d 0c20
173 ; Non fed phase Phase A
174 ; *ACTR = 0x0C20.
175
176 001e 7980 B __PWM_state_end
001f 002d'
177 ; ARP = AR3. AR3 -> mfunc_p.
178 ; AR2-> FR1.
179 ;--------------------------------------------------------------------------
180 0020 __PWM_state_bna: ; Input current path Phase B
181 0020 POINT_EV ; Output Current Path Phase A
1 0020 bce8 LDP #0E8h
182
183 0021 ae13 SPLK #002Ch,ACTRA
0022 002c
184 ; Non fed phase Phase C
185 ; *ACTR = 0x002C.
186
187 0023 7980 B __PWM_state_end
0024 002d'
188 ; ARP = AR3. AR3 -> mfunc_p.
189 ; AR2-> FR1.
190 ;--------------------------------------------------------------------------
191 0025 __PWM_state_cna: ; Input current path Phase C
192 0025 POINT_EV ; Output Current Path Phase A
1 0025 bce8 LDP #0E8h
193
194 0026 ae13 SPLK #020Ch,ACTRA
0027 020c
195 ; Non Fed Phase Phase B
196 ; *ACTR = 0x020C.
197
198 0028 7980 B __PWM_state_end
0029 002d'
199 ; ARP = AR3. AR3 -> mfunc_p.
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Tue May 6 12:42:13 2003
Copyright (c) 1987-1999 Texas Instruments Incorporated
f2407bldcpwm2.asm PAGE 5
200 ; AR2-> FR1.
201 ;--------------------------------------------------------------------------
202 002a __PWM_state_cnb: ; Input current path Phase C
203 002a POINT_EV ; Output Current Path Phase B
1 002a bce8 LDP #0E8h
204
205 002b ae13 SPLK #02C0h,ACTRA
002c 02c0
206 ; Non Fed Phase Phase A
207 ; *ACTR = 0x02C0.
208 ; ARP = AR3. AR3 -> mfunc_p.
209 ; AR2-> FR1.
210 ;================================================================================
211 002d __PWM_state_end:
212 ;Convert "Period" (Q15) modulation function to Q0
213 002d 73a0 LT *+ ; treg = mfunc_p.
214 ; ARP = AR3. AR3 -> period_max.
215 ; AR2 -> FR1.
216 ;--------------------------------------------------------------------------
217 002e 54aa MPY *+,AR2 ; PREG = mfunc_p * period_max.
218 ; AR3 -> d_func.
219 ; ARP = AR2.
220 ; AR2-> FR1.
221 ;--------------------------------------------------------------------------
222 002f be03 PAC ; Accumulator = mfunc_p * period_max.
223 ; ARP = AR2. AR2 ->FR1
224 ; AR3 -> d_func.
225 ;--------------------------------------------------------------------------
226 0030 99ab SACH *+,1,AR3
227 ; FR1(period) = mfunc_p * period_max (Q15)
228 ; AR2 -> FR2.
229 ; ARP = AR3. AR3 -> d_func.
230 ;--------------------------------------------------------------------------
231 ;Convert "D_func" (Q15) duty modulation function to Q0
232 .if (ACTIVE_HI) ; target dependancy
233
234 0031 bf80 LACC #MAXPERIOD ; Accumulator = 0x7fff.
0032 7fff
235 ; ARP = AR3. AR3 -> d_func.
236 ; AR2 -> FR2(temp_var2).
237 ;--------------------------------------------------------------------------
238 0033 308a SUB *,AR2 ; Accumulator = 0x7fff - d_func.
239 ; ARP = AR2. AR2 -> FR2 (temp_var2).
240 ;--------------------------------------------------------------------------
241
242 0034 9080 SACL * ; temp2_var = 0x7fff - d_func.
243 ; ARP = AR2. AR2 -> FR2(temp_var2).
244 .endif
245 ;--------------------------------------------------------------------------
246 .if (ACTIVE_LO) ; target dependancy
247
248 LACC *,AR2 ; Accumulator = d_func.
249 ; ARP = AR2. AR2 -> FR2 (temp_var2).
250 ;--------------------------------------------------------------------------
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Tue May 6 12:42:13 2003
Copyright (c) 1987-1999 Texas Instruments Incorporated
f2407bldcpwm2.asm PAGE 6
251 SACL * ; Accumulator = d_func.
252 ; ARP = AR2. AR2 -> FR2 (temp_var2).
253 .endif
254 ;--------------------------------------------------------------------------
255 0035 7390 LT *- ; TREG = temp2_var.
256 ; ARP = AR2.
257 ; AR2 -> FR1 (period i.e temp_var1).
258 ;--------------------------------------------------------------------------
259 0036 5489 MPY *,AR1 ; PREG = period * d_func.
260 ; ARP = AR1 (in preparation for exit)
261 ; AR2 -> FR1 (period i.e temp_var1).
262 ;-------------------------------------------------------------------------
263 0037 be03 PAC ; Accumulator = period * d_func.
264 ; ARP = AR1.
265 ;--------------------------------------------------------------------------
266 0038 POINT_EV
1 0038 bce8 LDP #0E8h
267
268 0039 9917 SACH CMPR1,1 ; *CMPR1 = Accumulator * 2.
269
270 003a 9918 SACH CMPR2,1 ; *CMPR2 = Accumulator * 2.
271
272 003b 9919 SACH CMPR3,1 ; *CMPR3 = Accumulator * 2.
273 ;================================================================================
274
275 003c __BLDC_PWM_Update_Exit:
276
277 ;--------------------------------------------------------------------------------
278 003c 7c04 SBRK #(__F2407_BLDC_PWM_Update_framesize + 1)
279 ; deallocate frame, point to saved FP
280 ;--------------------------------------------------------------------------------
281
282 003d 0090 LAR AR0,*- ; restore frame pointer
283 003e 7680 PSHD * ; push return address on hardware stack
284
285 ;--------------------------------------------------------------------------------
286 003f ef00 RET ; return to called function.
287 ;================================================================================
288 ;Commutation sequence jump table - used with BACC inst.
289 ;----------------------------------------------------------------------------
290 0040 _COMMUTATION_TBL:
291 0040 0011' .word __PWM_state_anb ; COMMUTATION_PTR = 0, de-energized phase = C
292 0041 0016' .word __PWM_state_anc ; COMMUTATION_PTR = 1, de-energized phase = B
293 0042 001b' .word __PWM_state_bnc ; COMMUTATION_PTR = 2, de-energized phase = A
294 0043 0020' .word __PWM_state_bna ; COMMUTATION_PTR = 3, de-energized phase = C
295 0044 0025' .word __PWM_state_cna ; COMMUTATION_PTR = 4, de-energized phase = B
296 0045 002a' .word __PWM_state_cnb ; COMMUTATION_PTR = 5, de-energized phase = A
297
298 ;================================================================================
No Errors, No Warnings
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -