📄 lsvpwm.lst
字号:
279 00b5 7a80 call MultiSingle_online
00b6 0000!
280 .endif
281
282 00b7 7980 B MENU
00b8 00b2'
283
284 ;======================================================================
285 ;INT2中断服务程序,包括TIMER1中断
286 ;======================================================================
287 00b9 GISR2: Store1
1 00b9 8b89 MAR *,AR1
1 00ba 8ba0 MAR *+
1 00bb 8fa0 SST #1,*+
1 00bc 8ea0 SST #0,*+
1 00bd 98a0 SACH *+
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Wed Mar 29 19:42:41 2006
Copyright (c) 1987-1999 Texas Instruments Incorporated
lsvpwm.asm PAGE 8
1 00be 90a0 SACL *+
1 00bf be03 PAC
1 00c0 c001 MPYK #1
1 00c1 8ca0 SPL *+
1 00c2 98a0 SACH *+
1 00c3 90a0 SACL *+
1 00c4 84a0 SAR AR4,*+ ;for scope
1 00c5 8280 SAR AR2,* ;for scope
288 00c6 bce8 LDP #EVIVRA/128 ;
289 00c7 1032 LACC EVIVRA ;读中断向量寄存器
290 00c8 ba29 SUB #29H ;29H代表T1UFINT
291 00c9 e388 BCND SINE,EQ ;是TIMER1下溢中断,跳转到SINE
00ca 00cd'
292 00cb 7980 B GISR2_OUT ;否则跳出中断
00cc 00f6'
293
294 00cd bc05 SINE LDP #TETA/128
295 00ce 1003 LACC TETA ;LOAD TETA角度 to ACC
296 00cf 2000 ADD STEP ;加上角度增量STEP
297 00d0 bfb0 AND #0FFH ;保证低八位为正
00d1 00ff
298 00d2 9003 SACL TETA ;付新值给TETA
299
300 00d3 1003 LACC TETA ;TETA->ACC
301 00d4 bf90 ADD #SINTAB ;加上SIN表入口地址
00d5 0138'
302 00d6 a604 TBLR SINTETA ;将对应的SIN值存入SINTETA中
303
304 00d7 7304 LT SINTETA ;LOAD SINTETA到 TREG
305 00d8 5402 MPY MAG_A ;乘上幅值
306 00d9 be03 PAC ;加载到ACC
307 00da 9905 SACH RESULT,1 ;RESULT=M*SIN(TETA)
308
309 00db 1001 LACC PERIOD ;RESULT=RERIOD/2+M*SIN(TETA)
310 00dc be0a SFR
311 00dd 2005 ADD RESULT
312 00de 9005 SACL RESULT
313
314 00df 1005 LACC RESULT
315 00e0 bce8 LDP #0E8H
316 00e1 9017 SACL CMPR1 ;RESULT->CMPR1
317 00e2 9002 SACL T1CMPR ;输出模拟量
318 00e3 9006 SACL T2CMPR
319 ;SPLK #750,CMPR1
320 ;SPLK #250,T1CMPR
321 ;===========================================================================
322 .if (scope_Enable==1)
323 00e4 7a80 call SaveToBuffer ;数据存入缓存
00e5 0000!
324 .endif
325
326 00e6 Clock_S01 S01,S01_K,Clock
1 00e6 bc04 ldp #S01/128 ;200H-027FH
1 00e7 6905 LACL S01
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Wed Mar 29 19:42:41 2006
Copyright (c) 1987-1999 Texas Instruments Incorporated
lsvpwm.asm PAGE 9
1 00e8 b801 ADD #1
1 00e9 9005 SACL S01
1 00ea bfa0 SUB #S01_K
00eb 0190
1 00ec e3cc BCND S01OUT,LEQ
00ed 00f5'
1
1 00ee ae05 splk #0,S01 ;S01复位
00ef 0000
1 00f0 bd00 ldp #SAH_k/128 ;示波器变量区
1 00f1 6a00! lacc Clock,16 ;软件时钟用于定时触发等
1 00f2 bf9f add #1<<1,15
00f3 0002
1 00f4 9800! sach Clock
1
1 00f5 8b00 S01OUT NOP
327 ;========================================================================
328 00f6 GISR2_OUT
329 00f6 bce8 LDP #EVIFRA/128
330 00f7 102f LACC EVIFRA ;
331 00f8 902f SACL EVIFRA ;清中断标志位
332 00f9 Restore1
1
1 00f9 8b89 MAR *,AR1
1 00fa 0290 lar AR2,*- ;for scope
1 00fb 0490 lar AR4,*- ;for scope
1 00fc 7390 LT *-
1 00fd c001 MPYK #1
1 00fe 7590 LPH *-
1 00ff 7390 LT *-
1 0100 6990 LACl *-
1 0101 6190 ADD *-,16
1 0102 0e90 LST #0,*-
1 0103 0f90 LST #1,*-
1
333 0104 be40 CLRC INTM
334 0105 ef00 RET
335
336 ;=====================================================================
337 0106 PHANTOM KICK_DOG ;RESETS WD COUNTER
1 0106 bce0 LDP #00E0h ;DP-->7000h-707Fh
1 0107 ae25 SPLK #05555h, WDKEY ;WDCNTR is enabled to be reset by next AAh
0108 5555
1 0109 ae25 SPLK #0AAAAh, WDKEY ;WDCNTR is reset
010a aaaa
1 010b bc00 LDP #0h ;DP-->0000h-007Fh
338 010c 7980 B PHANTOM
010d 0106'
339
340
341 ;===============================================================================
342 010e SERIAL: Store3
1 010e 8b89 MAR *,AR1
1 010f 8ba0 MAR *+
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Wed Mar 29 19:42:41 2006
Copyright (c) 1987-1999 Texas Instruments Incorporated
lsvpwm.asm PAGE 10
1 0110 8fa0 SST #1,*+
1 0111 8ea0 SST #0, *+
1 0112 98a0 SACH *+
1 0113 90a0 SACL *+
1 0114 82a0 SAR AR2,*+ ;for scope
1 0115 8480 SAR AR4,* ;for scope
343
344 0116 bc00 ldp #IMR/128
345 0117 SBIT0 IMR,B4_MSK ;在ScopeTX使SCI中断禁止
1 0117 1004 LACC IMR
1 0118 bfb0 AND #(0FFFFh-B4_MSK)
0119 ffef
1 011a 9004 SACL IMR
346 011b be40 CLRC INTM ;开中断
347
348 011c bce0 LDP #SYSIVR/128
349 011d 691e LACl SYSIVR
350 011e ba06 SUB #6
351 011f e388 BCND RXINT,EQ
0120 0123'
352 0121 7980 B TXINT
0122 0127'
353 ;---------------------------------------------------------------------
354 0123 7a80 RXINT call ScopeRX
0124 0000!
355 0125 7980 b SERIAL_end
0126 0129'
356 ;---------------------------------------------------------------------
357 0127 7a80 TXINT call ScopeTX
0128 0000!
358 ;---------------------------------------------------------------------
359
360 0129 be41 SERIAL_end SETC INTM
361 012a bc00 ldp #IMR/128
362 012b SBIT1 IMR,B4_MSK ;SCI中断使能
1 012b 1004 LACC IMR
1 012c bfc0 OR #(B4_MSK)
012d 0010
1 012e 9004 SACL IMR
363 012f Restore3
1
1 012f 8b89 MAR *,AR1
1 0130 0490 lar AR4,*- ;for scope
1 0131 0290 lar AR2,*- ;for scope
1 0132 6990 LACL *-
1 0133 6190 ADDH *-
1 0134 0e90 LST #0, *-
1 0135 0f90 LST #1, *-
364 0136 be40 CLRC INTM ;开中断
365 0137 ef00 RET
366 ;---------------------------------------------------------------------
367
368 ;-------------------------------------------------------
369 ; Sine look-up table
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Wed Mar 29 19:42:41 2006
Copyright (c) 1987-1999 Texas Instruments Incorporated
lsvpwm.asm PAGE 11
370 ; No. Entries : 256
371 ; Angle Range : 360 deg
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -