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

📄 sp_rv_pr.lst

📁 TI公司24X系列DSP控制永磁同步电机PMSM
💻 LST
字号:
dspa -q -l -s -i../../../rtmon -i../../../sys/bldc3_2/asm -i..\..\..\rtmon -i..\..\..\sys\bldc3_2\asm -v2xx -iC:/ti/c2400/cgtools/include -g sp_rv_pr.asm sp_rv_pr.obj 

TMS320C24xx COFF Assembler Version 7.02  Sun Apr 27 20:34:15 2003
Copyright (c) 1987-2002  Texas Instruments Incorporated 
sp_rv_pr.asm                                                         PAGE    1

       1            ;===========================================================================
       2            ; File Name:    Sp_rv_pr.asm
       3            ;
       4            ; Module Name:  SPEED_REV_PRD                        
       5            ;
       6            ; Initialization Routine: SPEED_REV_PRD_INIT
       7            ;
       8            ; Originator:   Digital Control Systems Group
       9            ;                       Texas Instruments
      10            ;       
      11            ; Description:  This module calculates the motor speed based on a signal's 
      12            ;               period measurement. Such a signal, for which the period is 
      13            ;               measured, can be the periodic output pulses from a motor 
      14            ;               speed sensor.
      15            ;                       
      16            ;                               |~~~~~~~~~~~~~~~~~|
      17            ;                               |                 |----->o  speed_prd
      18            ;          event_period o------>|  SPEED_REV_PRD  |
      19            ;                               |                 |----->o  speed_rpm
      20            ;                               |_________________|
      21            ;
      22            ;
      23            ;
      24            ;=====================================================================================
      25            ; History:
      26            ;-------------------------------------------------------------------------------------
      27            ; 9-15-2000     Release Rev 1.0 
      28            ;===========================================================================
      29            ;(To use this Module, copy this section to main system file)
      30            ;               .ref    SPEED_REV_PRD, SPEED_REV_PRD_INIT               ;function call
      31            ;               .ref    event_period                            ;Input
      32            ;               .ref    rpm_max, speed_scaler,shift             ;parameter
      33            ;               .ref    speed_prd, speed_rpm                    ;Outputs
      34            ;===========================================================================
      35            ;Module definitions for external reference.
      36                            .def    SPEED_REV_PRD, SPEED_REV_PRD_INIT               ;function call
      37                            .def    event_period                            ;Input
      38                            .def    rpm_max, speed_scaler,shift             ;parameter
      39                            .def    speed_prd, speed_rpm                    ;Outputs
      40            ;===========================================================================
      41                            .include        x24x_app.h   
      42            
      43            ;For 4 pole motor,40kHz sampling loop and Normalization speed = 15000 RPM
      44            ;--------------------------------------------------------------------------------
      45      0050  SPEED_SCALER_   .set    80      ;Scaling constant(see related document for details)
      46      3a98  RPM_MAX_        .set    15000   ;Max RPM value. Base RPM for normalization.
      47      0005  SHIFT_          .set    5       ;Shift parameter for max accuracy of 32bit/16bit division
      48            
      49            ;For 4 pole motor,40kHz sampling loop and Normalization speed = 10000 RPM
      50            ;--------------------------------------------------------------------------------
      51            ;SPEED_SCALER_  .set    120     ;Scaling constant(see related document for details)
      52            ;RPM_MAX_       .set    10000   ;Max RPM value. Base RPM for normalization.
      53            ;SHIFT_         .set    5       ;Shift parameter for max accuracy of 32bit/16bit division
      54            
TMS320C24xx COFF Assembler Version 7.02  Sun Apr 27 20:34:15 2003
Copyright (c) 1987-2002  Texas Instruments Incorporated 
sp_rv_pr.asm                                                         PAGE    2

      55            ;For 4 pole motor,40kHz sampling loop and Normalization speed = 6000 RPM
      56            ;--------------------------------------------------------------------------------
      57            ;SPEED_SCALER_  .set    200     ;Scaling constant(see related document for details)
      58            ;RPM_MAX_       .set    6000    ;Max RPM value. Base RPM for normalization.
      59            ;SHIFT_         .set    6       ;Shift parameter for max accuracy of 32bit/16bit division                       
      60            
      61            
      62            ;For 4 pole motor,20kHz sampling loop and Normalization speed = 6000 RPM
      63            ;--------------------------------------------------------------------------------
      64            ;SPEED_SCALER_  .set    100     ;Scaling constant(see related document for details)
      65            ;RPM_MAX_       .set    6000    ;Max RPM value. Base RPM for normalization.
      66            ;SHIFT_         .set    5       ;Shift parameter for max accuracy of 32bit/16bit division               
      67            
      68            
      69      000e  SHIFT_TOTAL     .set    14      ;Total shift
      70            
      71            
      72 0000       event_period    .usect "spdrvprd" ,1
      73 0001       speed_hi        .usect "spdrvprd" ,1
      74 0002       speed_lo        .usect "spdrvprd" ,1
      75 0003       speed_prd_max   .usect "spdrvprd" ,1
      76 0004       speed_prd       .usect "spdrvprd" ,1
      77 0005       speed_rpm       .usect "spdrvprd" ,1
      78 0006       speed_scaler    .usect "spdrvprd" ,1            
      79 0007       rpm_max         .usect "spdrvprd" ,1
      80 0008       shift           .usect "spdrvprd" ,1
      81 0009       shift2          .usect "spdrvprd" ,1
      82                                                                            
      83                            
      84            
      85 0000       SPEED_REV_PRD_INIT:
      86 0000 bc00-                 LDP     #rpm_max
      87 0001 ae07-                 SPLK    #RPM_MAX_, rpm_max              ;Q0
         0002 3a98  
      88 0003 ae06-                 SPLK    #SPEED_SCALER_, speed_scaler    ;Q0
         0004 0050  
      89 0005 ae08-                 SPLK    #SHIFT_, shift                  ;Q0
         0006 0005  
      90 0007 ef00                  RET
      91            
      92            
      93 0008       SPEED_REV_PRD:
      94 0008 bc00-                 LDP     #rpm_max
      95 0009 be46                  CLRC    SXM
      96            
      97            
      98            ;Calculate Speed, i.e. speed = 1/period
      99            ;Numerator (i.e. 1) is treated as a Q31 value, speed in Q31(=Q31/Q0)
     100            ;Phase 1   
     101            
     102 000a bf80  CALC_SPEED:     LACC    #07FFFh                 ;Load Numerator Hi
         000b 7fff  
     103 000c bb0f                  RPT     #15
     104 000d 0a00-                 SUBC    event_period
TMS320C24xx COFF Assembler Version 7.02  Sun Apr 27 20:34:15 2003
Copyright (c) 1987-2002  Texas Instruments Incorporated 
sp_rv_pr.asm                                                         PAGE    3

     105 000e 9001-                 SACL    speed_hi
     106 000f 6c01-                 XOR     speed_hi
     107 0010 bfc0                  OR      #0FFFFh                 ;Load Numerator Lo
         0011 ffff  
     108            ;Phase 2
     109 0012 bb0f                  RPT     #15
     110 0013 0a00-                 SUBC    event_period
     111 0014 9002-                 SACL    speed_lo                
     112            
     113                    
     114 0015 1002-                 LACC    speed_lo
     115 0016 6101-                 ADDH    speed_hi                ;Result in ACC is in Q31(32 bit) format  
     116              
     117 0017 0b08-                 rpt     shift                   ;The following Q numbers are for shift=6.
     118                                                            ;For other values of shift these will
     119                                                            ;change accordingly.
     120 0018 be09                  SFL                             ;Q38
     121 0019 9803-                 SACH    speed_prd_max           ;Q22
     122            
     123 001a bf80                  LACC    #SHIFT_TOTAL  
         001b 000e  
     124 001c 3008-                 SUB     shift
     125 001d 9009-                 SACL    shift2                  ;shift2=14-shift
     126            
     127 001e bf00                  SPM     0
     128 001f 7303-                 LT      speed_prd_max           ;Q22
     129 0020 5406-                 MPY     speed_scaler            ;Q0*Q22 
     130 0021 be03                  PAC                             ;Q22, 32 bit format
     131 0022 0b09-                 RPT     shift2                  ;shift2=14-shift
     132 0023 be09                  SFL                             ;Q31,32 bit format
     133 0024 9804-                 SACH    speed_prd               ;Q15, speed_prd = speed_scaler*speed_prd_max
     134                    
     135            
     136                    ;Scale to Q0 for direct RPM display 
     137            
     138 0025 7304-                 LT      speed_prd               ;Q15
     139 0026 5407-                 MPY     rpm_max                 ;Q0*Q15
     140 0027 be03                  PAC                             ;Q15, 32 bit format
     141 0028 9905-                 SACH    speed_rpm,1             ;Q0                
     142            
     143 0029 ef00  MSP_EXIT        RET

 No Errors,  No Warnings

⌨️ 快捷键说明

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