⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 park.lst

📁 无刷直流电机的无传感器控制TI程序
💻 LST
字号:
C:\TIC2XX\C2000\CGTOOLS\BIN\DSPA.EXE -q -v2xx -gs park.asm -o ..\obj\park.obj -l ..\temp\park.lst 

TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00  Tue May  6 12:41:05 2003
Copyright (c) 1987-1999  Texas Instruments Incorporated 
park.asm                                                             PAGE    1

       1            ;=====================================================================================
       2            ; File name:        PARK.ASM                     
       3            ;                    
       4            ; Originator:   Digital Control Systems Group
       5            ;                       Texas Instruments
       6            ;
       7            ; Description:                                 
       8            ; This file contains source for the PARK transformation.
       9            ;=====================================================================================
      10            ; History:
      11            ;-------------------------------------------------------------------------------------
      12            ; 9-15-2000     Release Rev 1.0
      13            ;================================================================================
      14            ; Applicability: F240,F241,C242,F243,F24xx.  (Peripheral Independant).
      15            ; Description:        
      16            ;                (d,q,theta) -> (D,Q) Transformation
      17            ;                park_D =    Park_d*cos(theta) + Park_q*sin(theta)
      18            ;                park_Q =  - Park_d*sin(theta) + Park_q*cos(theta)
      19            ;
      20            ; Precision:    Defines precision of the sine calculation.
      21            
      22      0000  High_precision  .set    0
      23            
      24            ;
      25            ;================================================================================
      26            ; Routine Name: Generic function.        Routine Type: C Callable
      27            ;
      28            ; Description:
      29            ;  
      30            ;  C prototype : int park(void *in, void *out)
      31            ; The elements in  *in should be in the order d,q,theta.
      32            ; The elements in *out will be placed in the order D,Q.
      33            ;================================================================================
      34                            .def        _park
      35            
      36                            .ref    SINTAB_360
      37            
      38            
      39            ;================================================================================
      40            
      41      0002  __park_framesize .set 0002h
      42            ;================================================================================
      43 0000       _park:
      44 0000 8aa0                       POPD        *+
      45 0001 80a0                  SAR        AR0,*+
      46 0002 8180                  SAR        AR1,*
      47 0003 b002                  LARK        AR0,__park_framesize
      48 0004 00e8                  LAR        AR0,*0+,AR0
      49            
      50            ;================================================================================
      51 0005 7c03                  SBRK        #3        ; Point AR0 to the first argument.
      52            ;--------------------------------------------------------------------------------
      53 0006 0290                  LAR        AR2,*-        ; get the argument #1 in AR2. 
      54                                            ; ARP=AR0, AR2->i/p s, AR0->arg #2. 
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00  Tue May  6 12:41:05 2003
Copyright (c) 1987-1999  Texas Instruments Incorporated 
park.asm                                                             PAGE    2

      55            ;--------------------------------------------------------------------------------
      56 0007 03a0                  LAR        AR3,*+        ; get the argument #2 in AR3. 
      57                                            ; ARP=AR0, AR0->arg #2, AR2->i/p's, AR3->o/p's.
      58            ;--------------------------------------------------------------------------------
      59 0008 7803                  ADRK    #3      ; Restore AR0 to point to FR0.
      60                                            ; ARP=AR0, AR0->FR0, AR2->i/p's, AR3->o/p's.
      61            ;--------------------------------------------------------------------------------
      62 0009 bf01                         SPM     1       ; Set SPM for Q15 multiplication
      63            ;--------------------------------------------------------------------------------
      64 000a be47                  SETC        SXM     ; Sign extension mode on
      65            ;--------------------------------------------------------------------------------
      66 000b 8b8a                  MAR     *,AR2   ; ARP=AR2, AR0->FR0, AR2->Park_d AR3->Park_D
      67            ;--------------------------------------------------------------------------------
      68 000c 7802                  ADRK    #2      ; Point to theta.
      69                                            ; ARP=AR2, AR0->FR0, AR2->Park_theta AR3->Park_D
      70            ;--------------------------------------------------------------------------------
      71            ;--- Normal precision option -------
      72                    .if (High_precision != 1)
      73                    
      74 000d 1088                  LACC    *,AR0   ; ACC=theta.
      75                                            ; ARP=AR0, AR0->FR0, AR2->Park_theta AR3->Park_D
      76            ;--------------------------------------------------------------------------------
      77 000e bf90                  ADD     #8192   ;add 90 deg, i.e. COS(A)=SIN(A+90)
         000f 2000  
      78                                            ; ARP=AR0, AR0->FR0, AR2->Park_theta AR3->Park_D
      79            ;--------------------------------------------------------------------------------
      80 0010 bfb0                  AND     #07fffh ; ARP=AR0, AR0->FR0, AR2->Park_theta AR3->Park_D
         0011 7fff  
      81            ;--------------------------------------------------------------------------------
      82 0012 9080                  SACL    *       ; Store ACC in FR0.
      83                                            ; ARP=AR0, AR0->FR0, AR2->Park_theta AR3->Park_D
      84            ;--------------------------------------------------------------------------------
      85 0013 1980                  LACC    *,9     ; Load with shift to get table pointer in ACCH.
      86                                            ; ARP=AR0, AR0->FR0, AR2->Park_theta AR3->Park_D
      87            ;--------------------------------------------------------------------------------
      88 0014 9880                  SACH    *       ; Store table ptr in FR0
      89                                            ; ARP=AR0, AR0->FR0, AR2->Park_theta AR3->Park_D
      90            ;--------------------------------------------------------------------------------
      91 0015 6980                  LACL    *       ; Get table pointer in lower acc.
      92                                            ; ARP=AR0, AR0->FR0, AR2->Park_theta AR3->Park_D
      93            ;--------------------------------------------------------------------------------
      94 0016 bfb0                  AND     #255    ; Ensure table pointer is 8 bit.
         0017 00ff  
      95                                            ; ARP=AR0, AR0->FR0, AR2->Park_theta AR3->Park_D
      96            ;--------------------------------------------------------------------------------
      97 0018 bf90                  ADD     #SINTAB_360
         0019 0000! 
      98                                            ; ARP=AR0, AR0->FR0, AR2->Park_theta AR3->Park_D
      99            ;--------------------------------------------------------------------------------
     100 001a a6aa                  TBLR    *+,AR2  ; FR0 = COS(theta).
     101                                            ; ARP=AR2, AR0->FR1, AR2->Park_theta AR3->Park_D
     102            ;--------------------------------------------------------------------------------
     103 001b 1998                  LACC    *-,9,AR0 ;ACCH= table_ptr (theta >> 9)
     104                                            ; ARP=AR0, AR0->FR1, AR2->Park_q AR3->Park_D
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00  Tue May  6 12:41:05 2003
Copyright (c) 1987-1999  Texas Instruments Incorporated 
park.asm                                                             PAGE    3

     105            ;--------------------------------------------------------------------------------
     106 001c 9880                  SACH    *       ; Store table ptr in FR1
     107                                            ; ARP=AR0, AR0->FR1, AR2->Park_q AR3->Park_D
     108            ;--------------------------------------------------------------------------------
     109 001d 6980                  LACL    *       ; Get table pointer in lower acc.
     110                                            ; ARP=AR0, AR0->FR1, AR2->Park_q AR3->Park_D
     111            ;--------------------------------------------------------------------------------
     112 001e bfb0                  AND     #255    ; Ensure table pointer is 8 bit.
         001f 00ff  
     113                                            ; ARP=AR0, AR0->FR1, AR2->Park_q AR3->Park_D
     114            ;--------------------------------------------------------------------------------
     115 0020 bf90                  ADD     #SINTAB_360
         0021 0000! 
     116                                            ; ARP=AR0, AR0->FR1, AR2->Park_q AR3->Park_D
     117            ;--------------------------------------------------------------------------------
     118 0022 a680                  TBLR    *       ; FR1 = SIN(theta).
     119                                            ; ARP=AR0, AR0->FR1, AR2->Park_q AR3->Park_D
     120                    .endif
     121            ;-----------------------------------
     122 0023 b900                  ZAC             ; ACC = 0
     123            
     124 0024 739a                  LT      *-,AR2   ; TREG = Sin(theta)
     125                                            ; ARP=AR2, AR0->FR0, AR2->Park_q AR3->Park_D
     126            ;--------------------------------------------------------------------------------
     127 0025 5490                  MPY     *-      ; PREG = sin(theta).Park_q
     128                                            ; ARP=AR2, AR0->FR0, AR2->Park_d AR3->Park_D
     129            ;--------------------------------------------------------------------------------
     130 0026 70a8                  LTA     *+,AR0   ; TREG = Park_d
     131                                            ; ACC  = sin(theta).Park_q
     132                                            ; ARP=AR0, AR0->FR0, AR2->Park_q AR3->Park_D
     133            ;--------------------------------------------------------------------------------
     134 0027 54a0                  MPY     *+      ; PREG = Park_d * cos(theta)
     135                                            ; ACC  = sin(theta).Park_q
     136                                            ; ARP=AR0, AR0->FR1, AR2->Park_q AR3->Park_D
     137            ;--------------------------------------------------------------------------------
     138 0028 509b                  MPYA    *-,AR3  ; ACC =  Park_q.sin(theta) + Park_d * cos(theta)
     139                                            ; PREG=  Park_d.sin(theta)
     140                                            ; ARP=AR3, AR0->FR0, AR2->Park_q AR3->Park_D
     141            ;--------------------------------------------------------------------------------
     142 0029 98aa                  SACH    *+,AR2  ; Store Park_D.
     143                                            ; PREG=  Park_d.sin(theta)
     144                                            ; ARP=AR2, AR0->FR0, AR2->Park_q AR3->Park_Q
     145            ;--------------------------------------------------------------------------------
     146 002a b900                  ZAC             ; ARP=AR2, AR0->FR0, AR2->Park_q AR3->Park_Q
     147            ;--------------------------------------------------------------------------------
     148 002b 7388                  LT      *,AR0   ; TREG = Park_q
     149                                            ; ARP=AR0, AR0->FR0, AR2->Park_q AR3->Park_Q
     150            ;--------------------------------------------------------------------------------
     151 002c 518b                  MPYS    *,AR3   ; PREG = Park_q.cos(theta).
     152                                            ; ACC  = - Park_d.sin(theta)
     153                                            ; ARP=AR0, AR0->FR0, AR2->Park_q AR3->Park_Q
     154            ;--------------------------------------------------------------------------------
     155 002d be04                  APAC            ; ACC = - Park_d.sin(theta) + Park_q.cos(theta).
     156                                            ; ARP=AR0, AR0->FR0, AR2->Park_q AR3->Park_Q
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00  Tue May  6 12:41:05 2003
Copyright (c) 1987-1999  Texas Instruments Incorporated 
park.asm                                                             PAGE    4

     157            ;--------------------------------------------------------------------------------
     158 002e 9889                  SACH    *,AR1   ; Store Park_Q.
     159            
     160 002f bf00                  SPM     0
     161            ;--------------------------------------------------------------------------------
     162 0030       __park_exit:
     163 0030 7c03                  SBRK        #(__park_framesize+1)
     164 0031 0090                  LAR        AR0,*-
     165 0032 7680                  PSHD        *
     166 0033 ef00                  RET
     167            
     168            

 No Errors,  No Warnings

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -