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

📄 ipark.lst

📁 DSP关于F2407的实例程序
💻 LST
字号:
C:\tic2xx\c2000\cgtools\bin\dspa.exe IPARK.asm IPARK.obj -gls -v2xx 

TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00  Wed Jun  8 17:23:50 2005
Copyright (c) 1987-1999  Texas Instruments Incorporated 
IPARK.asm                                                            PAGE    1

       1            ;=====================================================================
       2            ; Filename      :       IPARK.asm
       3            ; Module Name   :       IPARK
       4            ; Description:  PARK逆变换,从同步旋转坐标系变换到两相静止坐标系。
       5            ; Ualfa0 = USM0 * cos_ThetaS0 - UST0 * sin_ThetaS0
       6            ; Ubeta0 = USM0 * sin_ThetaS0 + UST0 * cos_ThetaS0
       7            ; 根据matlab计算,USM0、UST0和Ualfa0、Ubeta0同量纲。
       8            ;
       9            ;                               |~~~~~~~~~~~~~~~|
      10            ; USM0(Q11)             o---->  |               |----->o  Ualfa0(Q11)
      11            ; UST0(Q11)             o---->  |   IPARK       |
      12            ; ThetaS0               o---->  |               |----->o  Ubeta0(Q11)
      13            ;                               |_______________|
      14            ;
      15            ; Note: 0<ThetaS0<7FFFh   ( equivalent to 0<ThetaS0<360 deg  )
      16            ; Modify: 2004.6.18
      17            ;=====================================================================
      18                            .include "f2407.h"
      19                            .global SINTAB_360              
      20                            .global IPARK,IPARK_INIT                        ; function call
      21                            
      22                            .global USM0,UST0,ThetaS0                       ; Inputs
      23                            .global Ualfa0,Ubeta0                           ; Outputs
      24                            .global t_ptr,ip_val,cos_ThetaS0,sin_ThetaS0,nxt_entry,delta_angle
      25                            .global TEMP
      26            
      27            ;====================================================================
      28 0000       IPARK: 
      29            ;====================================================================
      30 0000 be47                  SETC    SXM                                     ; Sign extension mode
      31 0001 bf01                  SPM     1                                       
      32            ;-----------------------------------            
      33            ;Calculate Sin(ThetaS0) using look-up + interpolation method
      34 0002 bc04                  LDP     #DP_DATA                
      35 0003 1900!                 LACC    ThetaS0,9
      36 0004 9800!                 SACH    t_ptr                   ;Table pointer = ThetaS0 * 256 /0x7FFFH
      37                            
      38 0005 be0a                  SFR                             ;Convert Interpolation value(ip_val) to Q15
      39 0006 bfb0                  AND     #07FFFh                 ;Force ip_val to a positive number
         0007 7fff  
      40 0008 9000!                 SACL    ip_val                  ;ip_val存插值,Q15带符号数,这里是巧妙的地方,好好理解!
      41                            
      42 0009 bf80                  LACC    #SINTAB_360
         000a 0000! 
      43 000b 2000!                 ADD     t_ptr
      44 000c a600!                 TBLR    sin_ThetaS0             ;sin_ThetaS0 = Sin(ThetaS0) in Q15
      45 000d b801                  ADD     #1h                             ;Inc Table pointer
      46 000e a600!                 TBLR    nxt_entry               ;Get next entry i.e. (Entry + 1)
      47 000f 1000!                 LACC    nxt_entry
      48 0010 3000!                 SUB     sin_ThetaS0             ;Find Delta of 2 points
      49 0011 9000!                 SACL    delta_angle
      50 0012 7300!                 LT      delta_angle
      51 0013 5400!                 MPY     ip_val                  ;ip_val = interpolation value
      52 0014 be03                  PAC
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00  Wed Jun  8 17:23:50 2005
Copyright (c) 1987-1999  Texas Instruments Incorporated 
IPARK.asm                                                            PAGE    2

      53                            
      54 0015 9800!                 SACH    ip_val                  ;PM=1,去掉了一个符号位。ip_val和sin_ThetaS0同Q格式。
      55 0016 1000!                 LACC    ip_val
      56 0017 2000!                 ADD     sin_ThetaS0
      57 0018 9000!                 SACL    sin_ThetaS0             ;最终结果,Q15  
      58            ;-----------------------------------
      59            ;Calculate Cos(ThetaS0) using look-up + interpolation method
      60 0019 1000!                 LACC    ThetaS0
      61 001a bf90                  ADD     #8192                   ;COS(A)=SIN(A+90)
         001b 2000  
      62 001c bfb0                  AND     #7FFFH                  ;A+90>360时取低15位,相当于减去360。
         001d 7fff  
      63 001e 9000!                 SACL    TEMP
      64                            
      65 001f 1900!                 LACC    TEMP,9
      66 0020 9800!                 SACH    t_ptr                   ;Table pointer = ThetaS0 * 256 /0x7FFFH
      67                            
      68 0021 be0a                  SFR
      69 0022 bfb0                  AND     #7FFFH                  ;求差值
         0023 7fff  
      70 0024 9000!                 SACL    ip_val
      71                            
      72 0025 bf80                  LACC    #SINTAB_360
         0026 0000! 
      73 0027 2000!                 ADD     t_ptr
      74 0028 a600!                 TBLR    cos_ThetaS0             
      75 0029 b801                  ADD     #1
      76 002a a600!                 TBLR    nxt_entry
      77 002b 1000!                 LACC    nxt_entry
      78 002c 3000!                 SUB     cos_ThetaS0             ;差值,不一定正负。
      79 002d 9000!                 SACL    delta_angle
      80 002e 7300!                 LT      delta_angle             ;Q15
      81 002f 5400!                 MPY     ip_val
      82 0030 be03                  PAC                             
      83 0031 9800!                 SACH    ip_val                  ;因为delta_angle是Q15格式,PM=1,ip_val和sin_ThetaS0同Q格式。
      84                            
      85 0032 1000!                 LACC    ip_val
      86 0033 2000!                 ADD     cos_ThetaS0             ;由cos的性质,相加不会溢出。
      87 0034 9000!                 SACL    cos_ThetaS0             ;最终结果,Q15          
      88            ;-----------------------------------
      89            ; Calculate the Inverse Park transform
      90            ; Ualfa0 = USM0 * cos_ThetaS0 - UST0 * sin_ThetaS0              
      91 0035 7300!                 LT      cos_ThetaS0
      92 0036 5400!                 MPY     USM0
      93 0037 be03                  PAC
      94 0038 7300!                 LT      sin_ThetaS0
      95 0039 5400!                 MPY     UST0
      96 003a be05                  SPAC
      97 003b 9800!                 SACH    Ualfa0          ;变换结果(Q11)          
      98            ; Ubeta0 = USM0 * sin_ThetaS0 + UST0 * cos_ThetaS0
      99 003c 7300!                 LT      cos_ThetaS0
     100 003d 5400!                 MPY     UST0
     101 003e be03                  PAC
     102 003f 7300!                 LT      sin_ThetaS0
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00  Wed Jun  8 17:23:50 2005
Copyright (c) 1987-1999  Texas Instruments Incorporated 
IPARK.asm                                                            PAGE    3

     103 0040 5400!                 MPY     USM0
     104 0041 be04                  APAC
     105 0042 9800!                 SACH    Ubeta0          ;变换结果(Q11)
     106            ;-----------------------------------
     107 0043 bf00                  SPM             0                                       ; SPM reset
     108 0044 ef00                  RET     

 No Errors,  No Warnings

⌨️ 快捷键说明

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