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

📄 pid.lst

📁 TI公司24X系列DSP控制永磁同步电机PMSM
💻 LST
📖 第 1 页 / 共 2 页
字号:
     118            
     119 0019       _PID_SAT_CHK:
     120 0019 6a8b                  LACC        *,16,AR3        ; get upper part in ACC_L
     121 001a 7806                  ADRK        #6                ; now AR3 points to upper_limit.
     122                            
     123 001b 6580                  SUB        *,16
     124                    
     125                    ; do un - upper limit, this should NOT be ve.
     126                    ; if so it would exceed limits and must be clamped.
     127                    ; if less than 0 or equal to zero, branch to skip clamping.
     128            
     129 001c e3cc                  BCND        _PID_PLUS_OK,LEQ
         001d 0024' 
     130                            
     131 001e       _PID_PLUS_CLAMP:
     132                            
     133 001e 69aa                  LACL        *+,AR2                ; get upper limit.
     134                                                    ; inc AR3 to point to lower limit.
     135                                                    ; 
     136 001f 90a0                  SACL        *+                ; store in un_H
     137 0020 b900                  LACK         #0                ; 
     138 0021 9090                  SACL        *-                ; AR2 points once again to un_H
     139            
     140 0022 7980                  B        _PID_CLAMPING_DONE
         0023 002d' 
     141                            
     142 0024       _PID_PLUS_OK:
     143            
     144 0024       _PID_NEG_CHK:
     145 0024 8baa                  MAR        *+,AR2                ; incoming ARP=AR3 pointing to upper_limit
     146                                                    ; inc AR3 to point to lower limit.        
     147                                                    ; AR2 points to un_H
     148                                                    
     149 0025 6a8b                  LACC        *,16,AR3        ; get un_H
     150            
     151 0026 6580                  SUB        *,16                
     152                            
     153                    ; do un_h -lower limit, this should not be negative.
     154                    ; so if it went lower than the limit then must be clamped to lower limit.
     155                    ; if greater than or equal to zero skip clamp.
     156            
     157            
     158 0027 e38c                  BCND        _PID_NEG_OK,GEQ
         0028 002d' 
     159                            
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00  Mon Aug 18 20:35:54 2003
Copyright (c) 1987-1999  Texas Instruments Incorporated 
pid.asm                                                              PAGE    4

     160 0029       _PID_NEG_CLAMP:
     161            
     162 0029 698a                  LACL        *,AR2                ; get lower limit.                
     163 002a 90a0                  SACL        *+                ; store lower limit to un_H
     164 002b b900                  LACK        #0                ;
     165 002c 909b                  SACL        *-,AR3                ; store zero for un_L
     166                                                    ; ARP=AR3
     167                            
     168                            ; AR2 still points to un_H
     169                            
     170 002d       _PID_NEG_OK:        
     171 002d       _PID_CLAMPING_DONE:
     172            
     173                            ; At this point the state is :
     174                            ; un_H:un_L clamped !!
     175                            ; ARP=AR3
     176                            ; AR2->un_H
     177                            ; AR3->lower limit
     178                            
     179 002d 7c03                  SBRK        #3                ; point AR3 to Kf.
     180                            
     181 002e 8b8a                  MAR        *,AR2                ; ARP=AR2->un_H
     182                            
     183 002f 6aa0                  LACC        *+,16                ; get un_H in ACCH
     184 0030 2080                  ADD        *                ; get un_L in ACCL.
     185            
     186                                                    ; AR2 now points to un_L
     187 0031 7809                  ADRK        #9                ; AR2 now points to rn
     188            
     189 0032 738b                  LT        *,AR3                ; get rn in TREG.
     190 0033 549a                  MPY        *-,AR2                 ; multiply by Kf.
     191                                                    ; dec AR3 to point to Kx.
     192                                                    
     193            
     194 0034 be04                  APAC                        ; get PID+FF.
     195            
     196 0035 7803                  ADRK        #3                ; point AR2 to output.
     197                            
     198 0036 988b                  SACH        *,AR3                ; store u_H in output.
     199            
     200 0037 038a                  LAR        AR3,*,AR2        ; get Kx in AR3
     201                                                    ; ARP=AR2.
     202                            
     203 0038 b900                  LACK        #0                ; get zero in acc.
     204            
     205            
     206 0039       _PID_MULT_LOOP:
     207 0039 618b                  ADD        *,16,AR3        ; add the output to the acc
     208                                                    ; make current AR=AR3 for BANZ loop.
     209            
     210 003a 7b9a                  BANZ        _PID_MULT_LOOP,*-,AR2
         003b 0039' 
     211                            
     212                                                    ; here ARP=AR2
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00  Mon Aug 18 20:35:54 2003
Copyright (c) 1987-1999  Texas Instruments Incorporated 
pid.asm                                                              PAGE    5

     213            
     214 003c 9880                  SACH        *                ; store multiplied output in 'output'
     215            
     216            
     217            
     218 003d       _PID_DIAG_EXIT:        
     219            
     220 003d 6989                  LACL        *,AR1                ; Return 'output' in accumulator.
     221                                                    ; ARP=AR1 in prep for return
     222 003e be42                  CLRC        OVM
     223 003f bf00                  SPM        0
     224            
     225            ;===========================================================================
     226 0040 7c02                  SBRK        2
     227 0041 0090                  LAR        AR0,*-
     228 0042 7680                  PSHD        *
     229 0043 ef00                  RET
     230            
     231            
     232            

 No Errors,  No Warnings

⌨️ 快捷键说明

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