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

📄 ist_pid.lst

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

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

       1            ;====================================================================
       2            ; Filename      :       IST_PID.asm
       3            ; Module names: IST_PID
       4            ; Initialization routines: IST_PID_INIT
       5            ; Description:  转矩电流调节器
       6            ;------------------------------------------------------------
       7            ; UST0 = UST1 + IST_PID_K0 * ISTE0 + IST_PID_K1 * ISTE1 + IST_PID_K2 * ISTE2
       8            ;
       9            ;                               |~~~~~~~~~~~|
      10            ;       IST0,1    o------>      |           |
      11            ;       IST_ref    o------>     |  PID      |   ----->o  UST0
      12            ;       UST1         o------>   |           |
      13            ;       ISTE0,1,2  o------>     |           |
      14            ; IST_PID_K0,K1,K2 o------>     |___________|
      15            ;       
      16            ; Modify: 2004.6.17
      17            ;=====================================================================
      18                            .include "f2407.h"      
      19                            .global IST_PID,IST_PID_INIT            ; function call
      20                            
      21                            .global IST0,IST_ref                    ; Inputs
      22                            .global IST_PID_K0,IST_PID_K1,IST_PID_K2;Inputs
      23                            .global ISTE0,ISTE1,ISTE2               ; Inputs
      24                            .global UST1,UST_TEMP                   ; Input
      25                            .global UST0                                    ; Outputs
      26                            .global USTmax,USTmin
      27            ;=====================================================================
      28 0000       IST_PID_INIT:
      29            ;=====================================================================
      30 0000 bc04                  LDP     #DP_DATA                
      31 0001 ae00!                 SPLK    #28000,USTmax           ;设最值输出,注意不要超过调制度0.866,28000差不多就是最大了。
         0002 6d60  
      32 0003 ae00!                 SPLK    #-28000,USTmin          
         0004 92a0  
      33                            
      34 0005 ae00!                 SPLK    #0,UST1                 ;给初值
         0006 0000  
      35 0007 ae00!                 SPLK    #0,ISTE0
         0008 0000  
      36 0009 ae00!                 SPLK    #0,ISTE1
         000a 0000  
      37 000b ae00!                 SPLK    #0,ISTE2
         000c 0000  
      38                            
      39 000d ae00!                 SPLK    #18030,IST_PID_K0
         000e 466e  
      40                            ;SPLK   #7775,IST_PID_K0                ;根据实际来设定,现在先胡乱设。
      41 000f ae00!                 SPLK    #-18000,IST_PID_K1              ;比例积分调节。
         0010 b9b0  
      42 0011 ae00!                 SPLK    #0,IST_PID_K2                   ;先设为0,微分增益。
         0012 0000  
      43            
      44 0013 ef00                  RET
      45            ;=====================================================================
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00  Wed Jun  8 17:23:51 2005
Copyright (c) 1987-1999  Texas Instruments Incorporated 
IST_PID.asm                                                          PAGE    2

      46 0014       IST_PID:
      47            ;=====================================================================
      48 0014 be47                  SETC    SXM
      49 0015 bf01                  SPM     1                       ;符号数相乘
      50            ;------------------------------------------------------------                                                   
      51 0016 bc04                  LDP     #DP_DATA
      52            ;               SPLK    #500,ISTE0
      53 0017 1000!                 LACC    UST0
      54 0018 9000!                 SACL    UST1                    ;UST0->UST1
      55 0019 1000!                 LACC    ISTE1
      56 001a 9000!                 SACL    ISTE2           ;ISTE1->ISTE2
      57 001b 1000!                 LACC    ISTE0
      58 001c 9000!                 SACL    ISTE1           ;ISTE0->ISTE1
      59            ; calculate UST0
      60            ; UST0 = UST1 + IST_PID_K0 * ISTE0 + IST_PID_K1 * ISTE1 + IST_PID_K2 * ISTE2    
      61 001d 1000!                 LACC    IST_ref
      62 001e 3000!                 SUB     IST0
      63                            ;数据处理
      64 001f 9000!                 SACL    ISTE0           ;新的ISTE0
      65            
      66 0020 6a00!                 LACC    UST1,16         
      67 0021 2000!                 ADD     UST_TEMP        ;ACC为上一次的计算结果
      68 0022 7300!                 LT      ISTE0
      69 0023 5400!                 MPY     IST_PID_K0
      70 0024 7000!                 LTA     ISTE1
      71 0025 5400!                 MPY     IST_PID_K1
      72 0026 7000!                 LTA     ISTE2
      73 0027 5400!                 MPY     IST_PID_K2
      74 0028 be04                  APAC
      75                            ;数据处理
      76 0029 9800!                 SACH    UST0                    ;存PID计算结果  
      77 002a 9000!                 SACL    UST_TEMP                ;存PID计算结果的低16位。        
      78            ;------------------------------------------------------------
      79            ; 判断 UST0 是否饱和
      80 002b 1000!                 LACC    UST0
      81 002c 3000!                 SUB     USTmin
      82 002d e38c                  BCND    IST_PID_MIN,GEQ
         002e 0032' 
      83 002f 1000!                 LACC    USTmin
      84 0030 7980                  B       IST_PID_RESULT
         0031 003c' 
      85 0032       IST_PID_MIN:            
      86 0032 1000!                 LACC    UST0
      87 0033 3000!                 SUB     USTmax
      88 0034 e3cc                  BCND    IST_PID_MAX,LEQ
         0035 0039' 
      89 0036 1000!                 LACC    USTmax
      90 0037 7980                  B       IST_PID_RESULT
         0038 003c' 
      91 0039       IST_PID_MAX:
      92 0039 1000!                 LACC    UST0
      93 003a 7980                  B       IST_PID_RESULT
         003b 003c' 
      94 003c       IST_PID_RESULT:         
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00  Wed Jun  8 17:23:51 2005
Copyright (c) 1987-1999  Texas Instruments Incorporated 
IST_PID.asm                                                          PAGE    3

      95 003c 9000!                 SACL    UST0                    ; 最终结果
      96            ;------------------------------------------------------------
      97 003d bf00                  SPM     0
      98 003e ef00                  RET

 No Errors,  No Warnings

⌨️ 快捷键说明

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