svpwm.lst
来自「DSP关于F2407的实例程序」· LST 代码 · 共 376 行 · 第 1/2 页
LST
376 行
133 0067 7980 B START_CAL_T
0068 006c'
134 ;----------------------------------------
135 0069 SECTOR_ERROR:
136 0069 bf00 SPM 0
137 006a 7a80 CALL PROTECT ;加载保护模块
006b 0000!
138 ;----------------------------------------------------------------
139 ;Name : 计算T1,T2时间(根据清华大学电机系文章。)
140 ;Para : input:Ualfa0,Ubeta0
141 ; output: CMPR1_BUFF,CMPR2_BUFF,(两个比较寄存器的值),ACTRA_BUFF(空间矢量的扇区值)
142 ; constant: SVPWM_C1(Q15),SVPWM_C2(Q15)
143 ;Modify : 2004.6.18
144 ;-----------------------------------------------------------------
145 006c START_CAL_T:
146 006c bf01 SPM 1
147 ;----------------------------------------
148 ;先计算T1X/2,T2X/4.分别存在TX1,TX2里面.
149 ;TX1=T1X/2=sqrt(3/8)*ABS(Ualfa0)*Tpwm/Udc=SVPWM_C1*ABS(Ualfa0)
150 006d 1000! LACC Ualfa0
151 006e be00 ABS
152 006f 9000! SACL TEMP
153 0070 7300! LT TEMP
154 0071 5400! MPY SVPWM_C1
155 0072 8d00! SPH TX1
156 ;TX2=T2X/4=sqrt(1/8)*ABS(Ubeta0)*Tpwm/Udc=SVPWM_C2*ABS(Ubeta0)
157 0073 1000! LACC Ubeta0
158 0074 be00 ABS
159 0075 9000! SACL TEMP
160 0076 7300! LT TEMP
161 0077 5400! MPY SVPWM_C2
162 0078 8d00! SPH TX2
163 ;----------------------------------------
164 ;计算T1/2,(T1+T2)/2,并确定下一周期ACTRA的值。赋值CMPR1_BUFF,CMPR2_BUFF,ACTRA_BUFF。
165 0079 bc04 LDP #DP_DATA
166 007a 0000! LAR AR0,SECTOR
167 007b 7c01 SBRK #1 ;AR0-1
168 007c 7b90 BANZ NOT1 ;指令执行之后,AR0=AR0-1
007d 0088'
169 ;扇区I
170 007e ae00! SPLK #1100011001100110B,ACTRA_BUFF ;逆时针转,空间矢量100
007f c666
171
172 0080 1000! LACC TX1
173 0081 3000! SUB TX2
174 0082 9000! SACL CMPR1_BUFF ;T1结果
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Wed Jun 8 17:23:49 2005
Copyright (c) 1987-1999 Texas Instruments Incorporated
SVPWM.asm PAGE 5
175
176 0083 1000! LACC TX1
177 0084 2000! ADD TX2
178 0085 9000! SACL CMPR2_BUFF ;T2结果
179 0086 7980 B END_CAL_T ;结束计算
0087 00da'
180 ;----------------------
181 0088 NOT1:
182 0088 7b90 BANZ NOT2 ;AR0-2
0089 0094'
183 ;扇区II的第一象限
184 008a ae00! SPLK #1110011001100110B,ACTRA_BUFF ;逆时针转,空间矢量110
008b e666
185
186 008c 1000! LACC TX1
187 008d 2000! ADD TX2
188 008e 9000! SACL CMPR1_BUFF ;T1结果
189
190 008f 1000! LACC TX2
191 0090 2000! ADD TX2
192 0091 9000! SACL CMPR2_BUFF ;T2结果
193 0092 7980 B END_CAL_T ;结束计算
0093 00da'
194 ;----------------------
195 0094 NOT2:
196 0094 7b90 BANZ NOT3 ;AR0-3
0095 00a0'
197 ;扇区II的第二象限
198 0096 ae00! SPLK #1110011001100110B,ACTRA_BUFF ;逆时针转,空间矢量110
0097 e666
199
200 0098 1000! LACC TX2
201 0099 3000! SUB TX1
202 009a 9000! SACL CMPR1_BUFF ;T1结果。
203
204 009b 1000! LACC TX2
205 009c 2000! ADD TX2
206 009d 9000! SACL CMPR2_BUFF ;T2结果
207 009e 7980 B END_CAL_T ;结束计算
009f 00da'
208 ;----------------------
209 00a0 NOT3:
210 00a0 7b90 BANZ NOT4 ;AR0-4
00a1 00ac'
211 ;扇区III
212 00a2 ae00! SPLK #1010011001100110B,ACTRA_BUFF ;逆时针转,空间矢量010
00a3 a666
213
214 00a4 1000! LACC TX2
215 00a5 2000! ADD TX2
216 00a6 9000! SACL CMPR1_BUFF ;T1结果
217
218 00a7 1000! LACC TX1
219 00a8 2000! ADD TX2
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Wed Jun 8 17:23:49 2005
Copyright (c) 1987-1999 Texas Instruments Incorporated
SVPWM.asm PAGE 6
220 00a9 9000! SACL CMPR2_BUFF ;T2结果
221 00aa 7980 B END_CAL_T ;结束计算
00ab 00da'
222 ;----------------------
223 00ac NOT4:
224 00ac 7b90 BANZ NOT5 ;AR0-5
00ad 00b8'
225 ;扇区IV
226 00ae ae00! SPLK #1011011001100110B,ACTRA_BUFF ;逆时针转,空间矢量011
00af b666
227
228 00b0 1000! LACC TX1
229 00b1 3000! SUB TX2
230 00b2 9000! SACL CMPR1_BUFF ;T1结果。
231
232 00b3 1000! LACC TX1
233 00b4 2000! ADD TX2
234 00b5 9000! SACL CMPR2_BUFF ;T2结果
235 00b6 7980 B END_CAL_T ;结束计算
00b7 00da'
236 ;----------------------
237 00b8 NOT5:
238 00b8 7b90 BANZ NOT6 ;AR0-6
00b9 00c4'
239 ;扇区V的第四象限
240 00ba ae00! SPLK #1001011001100110B,ACTRA_BUFF ;逆时针转,空间矢量001
00bb 9666
241
242 00bc 1000! LACC TX2
243 00bd 3000! SUB TX1
244 00be 9000! SACL CMPR1_BUFF ;T1结果
245
246 00bf 1000! LACC TX2
247 00c0 2000! ADD TX2
248 00c1 9000! SACL CMPR2_BUFF ;T2结果
249 00c2 7980 B END_CAL_T ;结束计算
00c3 00da'
250 ;----------------------
251 00c4 NOT6:
252 00c4 7b90 BANZ NOT7 ;AR0-7
00c5 00d0'
253 ;扇区V的第三象限
254 00c6 ae00! SPLK #1001011001100110B,ACTRA_BUFF ;逆时针转,空间矢量001
00c7 9666
255
256 00c8 1000! LACC TX1
257 00c9 2000! ADD TX2
258 00ca 9000! SACL CMPR1_BUFF ;T1结果
259
260 00cb 1000! LACC TX2
261 00cc 2000! ADD TX2
262 00cd 9000! SACL CMPR2_BUFF ;T2结果
263 00ce 7980 B END_CAL_T ;结束计算
00cf 00da'
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Wed Jun 8 17:23:49 2005
Copyright (c) 1987-1999 Texas Instruments Incorporated
SVPWM.asm PAGE 7
264 ;----------------------
265 00d0 NOT7:
266 ;扇区VI
267 00d0 ae00! SPLK #1101011001100110B,ACTRA_BUFF ;逆时针转,空间矢量101
00d1 d666
268
269 00d2 1000! LACC TX2
270 00d3 2000! ADD TX2
271 00d4 9000! SACL CMPR1_BUFF ;T1结果
272
273 00d5 1000! LACC TX1
274 00d6 2000! ADD TX2
275 00d7 9000! SACL CMPR2_BUFF ;T2结果
276 00d8 7980 B END_CAL_T ;结束计算
00d9 00da'
277 ;----------------------------------------
278 00da END_CAL_T:
279 00da bf00 SPM 0
280 00db ef00 RET
No Errors, No Warnings
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?