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

📄 kesair_pid.lst

📁 DSP关于F2407的实例程序
💻 LST
字号:
C:\tic2xx\c2000\cgtools\bin\dspa.exe KesaiR_PID.asm KesaiR_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 
KesaiR_PID.asm                                                       PAGE    1

       1            ;====================================================================
       2            ; Filename      :       KesaiR_PID.asm
       3            ; Module names: KesaiR_PID
       4            ; Initialization routines: KesaiR_PID_INIT
       5            ; Description:  KesaiR的PID调节器
       6            ;------------------------------------------------------------
       7            ; USM0 = USM1 + KesaiR_PID_K0 * KesaiRE0 + KesaiR_PID_K1 * KesaiRE1 + KesaiR_PID_K2 * KesaiRE2
       8            ;
       9            ;                               |~~~~~~~~~~~|
      10            ;       KesaiR0,1    o------>   |           |
      11            ;       KesaiR_ref    o------>  |  PID      |   ----->o  USM0
      12            ;       USM1         o------>   |           |
      13            ;       KesaiRE0,1,2  o------>  |           |
      14            ; KesaiR_PID_K0,K1,K2 o------>  |___________|
      15            ;       
      16            ; Modify: 2004.6.17
      17            ;=====================================================================
      18                            .include "f2407.h"      
      19                            .global KesaiR_PID,KesaiR_PID_INIT              ; function call
      20                            
      21                            .global KesaiR0,KesaiR_ref                      ; Inputs
      22                            .global KesaiR_PID_K0,KesaiR_PID_K1,KesaiR_PID_K2;Inputs
      23                            .global KesaiRE0,KesaiRE1,KesaiRE2              ; Inputs
      24                            .global USM1,USM_TEMP                           ; Input
      25                            .global USM0                                    ; Outputs
      26                            .global USMmax,USMmin
      27            ;=====================================================================
      28 0000       KesaiR_PID_INIT:
      29            ;=====================================================================
      30 0000 bc04                  LDP     #DP_DATA                
      31 0001 ae00!                 SPLK    #14000,USMmax           ;设定最值输出
         0002 36b0  
      32 0003 ae00!                 SPLK    #-14000,USMmin          
         0004 c950  
      33                            
      34 0005 ae00!                 SPLK    #0,USM1                 ;给初值
         0006 0000  
      35 0007 ae00!                 SPLK    #0,KesaiRE0
         0008 0000  
      36 0009 ae00!                 SPLK    #0,KesaiRE1
         000a 0000  
      37 000b ae00!                 SPLK    #0,KesaiRE2
         000c 0000  
      38                            
      39 000d ae00!                 SPLK    #13780,KesaiR_PID_K0
         000e 35d4  
      40                            ;SPLK   #8780,KesaiR_PID_K0                     ;根据实际来设定,现在先胡乱设。
      41 000f ae00!                 SPLK    #-13700,KesaiR_PID_K1
         0010 ca7c  
      42 0011 ae00!                 SPLK    #0,KesaiR_PID_K2
         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 
KesaiR_PID.asm                                                       PAGE    2

      46 0014       KesaiR_PID:
      47            ;=====================================================================
      48 0014 be47                  SETC    SXM
      49 0015 bf01                  SPM     1                       ;符号数相乘
      50            ;------------------------------------------------------------                                                   
      51 0016 bc04                  LDP     #DP_DATA
      52 0017 1000!                 LACC    USM0
      53 0018 9000!                 SACL    USM1                    ;USM0->USM1
      54 0019 1000!                 LACC    KesaiRE1
      55 001a 9000!                 SACL    KesaiRE2                ;KesaiRE1->KesaiRE2
      56 001b 1000!                 LACC    KesaiRE0
      57 001c 9000!                 SACL    KesaiRE1                ;KesaiRE0->KesaiRE1
      58            ;               SPLK    #2100,KesaiR0
      59            ; calculate USM0
      60            ; USM0 = USM1 + KesaiR_PID_K0 * KesaiRE0 + KesaiR_PID_K1 * KesaiRE1 + KesaiR_PID_K2 * KesaiRE2  
      61 001d 1000!                 LACC    KesaiR_ref
      62 001e 3000!                 SUB     KesaiR0
      63                            ;数据处理
      64 001f 9000!                 SACL    KesaiRE0                ;新的KesaiRE0
      65            
      66 0020 6a00!                 LACC    USM1,16
      67 0021 2000!                 ADD     USM_TEMP                ;ACC为上一次的计算结果
      68 0022 7300!                 LT      KesaiRE0
      69 0023 5400!                 MPY     KesaiR_PID_K0
      70 0024 7000!                 LTA     KesaiRE1
      71 0025 5400!                 MPY     KesaiR_PID_K1
      72 0026 7000!                 LTA     KesaiRE2
      73 0027 5400!                 MPY     KesaiR_PID_K2
      74 0028 be04                  APAC
      75                            ;数据处理
      76 0029 9800!                 SACH    USM0                    ;存PID计算结果
      77 002a 9000!                 SACL    USM_TEMP                ;存PID计算结果的低16位。        
      78            ;------------------------------------------------------------
      79            ; 判断 USM0 是否饱和
      80 002b 1000!                 LACC    USM0
      81 002c 3000!                 SUB     USMmin
      82 002d e38c                  BCND    KesaiR_PID_MIN,GEQ
         002e 0032' 
      83 002f 1000!                 LACC    USMmin
      84 0030 7980                  B       KesaiR_PID_RESULT
         0031 003c' 
      85 0032       KesaiR_PID_MIN:         
      86 0032 1000!                 LACC    USM0
      87 0033 3000!                 SUB     USMmax
      88 0034 e3cc                  BCND    KesaiR_PID_MAX,LEQ
         0035 0039' 
      89 0036 1000!                 LACC    USMmax
      90 0037 7980                  B       KesaiR_PID_RESULT
         0038 003c' 
      91 0039       KesaiR_PID_MAX:
      92 0039 1000!                 LACC    USM0
      93 003a 7980                  B       KesaiR_PID_RESULT
         003b 003c' 
      94 003c       KesaiR_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 
KesaiR_PID.asm                                                       PAGE    3

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

 No Errors,  No Warnings

⌨️ 快捷键说明

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