svpwm.lst

来自「DSP关于F2407的实例程序」· LST 代码 · 共 376 行 · 第 1/2 页

LST
376
字号
     133 0067 7980          B       START_CAL_T
         0068 006c' 
     134            ;----------------------------------------       
     135 0069       SECTOR_ERROR:
     136 0069 bf00          SPM     0
     137 006a 7a80          CALL    PROTECT                 ;加载保护模块
         006b 0000! 
     138            ;----------------------------------------------------------------
     139            ;Name   : 计算T1,T2时间(根据清华大学电机系文章。)
     140            ;Para   : input:Ualfa0,Ubeta0
     141            ;         output: CMPR1_BUFF,CMPR2_BUFF,(两个比较寄存器的值),ACTRA_BUFF(空间矢量的扇区值)
     142            ;         constant: SVPWM_C1(Q15),SVPWM_C2(Q15)
     143            ;Modify : 2004.6.18
     144            ;-----------------------------------------------------------------
     145 006c       START_CAL_T:
     146 006c bf01          SPM     1
     147            ;----------------------------------------
     148            ;先计算T1X/2,T2X/4.分别存在TX1,TX2里面. 
     149            ;TX1=T1X/2=sqrt(3/8)*ABS(Ualfa0)*Tpwm/Udc=SVPWM_C1*ABS(Ualfa0)
     150 006d 1000!         LACC    Ualfa0
     151 006e be00          ABS
     152 006f 9000!         SACL    TEMP
     153 0070 7300!         LT      TEMP
     154 0071 5400!         MPY     SVPWM_C1        
     155 0072 8d00!         SPH     TX1             
     156            ;TX2=T2X/4=sqrt(1/8)*ABS(Ubeta0)*Tpwm/Udc=SVPWM_C2*ABS(Ubeta0)
     157 0073 1000!         LACC    Ubeta0
     158 0074 be00          ABS
     159 0075 9000!         SACL    TEMP
     160 0076 7300!         LT      TEMP
     161 0077 5400!         MPY     SVPWM_C2
     162 0078 8d00!         SPH     TX2
     163            ;----------------------------------------
     164            ;计算T1/2,(T1+T2)/2,并确定下一周期ACTRA的值。赋值CMPR1_BUFF,CMPR2_BUFF,ACTRA_BUFF。
     165 0079 bc04          LDP     #DP_DATA
     166 007a 0000!         LAR     AR0,SECTOR                      
     167 007b 7c01          SBRK    #1                              ;AR0-1
     168 007c 7b90          BANZ    NOT1                            ;指令执行之后,AR0=AR0-1
         007d 0088' 
     169            ;扇区I  
     170 007e ae00!         SPLK    #1100011001100110B,ACTRA_BUFF   ;逆时针转,空间矢量100
         007f c666  
     171            
     172 0080 1000!         LACC    TX1
     173 0081 3000!         SUB     TX2
     174 0082 9000!         SACL    CMPR1_BUFF                      ;T1结果
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00  Wed Jun  8 17:23:49 2005
Copyright (c) 1987-1999  Texas Instruments Incorporated 
SVPWM.asm                                                            PAGE    5

     175            
     176 0083 1000!         LACC    TX1
     177 0084 2000!         ADD     TX2
     178 0085 9000!         SACL    CMPR2_BUFF                      ;T2结果
     179 0086 7980          B       END_CAL_T                       ;结束计算
         0087 00da' 
     180            ;---------------------- 
     181 0088       NOT1:   
     182 0088 7b90          BANZ    NOT2                            ;AR0-2
         0089 0094' 
     183            ;扇区II的第一象限
     184 008a ae00!         SPLK    #1110011001100110B,ACTRA_BUFF   ;逆时针转,空间矢量110
         008b e666  
     185                    
     186 008c 1000!         LACC    TX1
     187 008d 2000!         ADD     TX2
     188 008e 9000!         SACL    CMPR1_BUFF                      ;T1结果
     189                    
     190 008f 1000!         LACC    TX2
     191 0090 2000!         ADD     TX2
     192 0091 9000!         SACL    CMPR2_BUFF                      ;T2结果
     193 0092 7980          B       END_CAL_T                       ;结束计算
         0093 00da' 
     194            ;----------------------
     195 0094       NOT2:   
     196 0094 7b90          BANZ    NOT3    ;AR0-3
         0095 00a0' 
     197            ;扇区II的第二象限
     198 0096 ae00!         SPLK    #1110011001100110B,ACTRA_BUFF   ;逆时针转,空间矢量110
         0097 e666  
     199                    
     200 0098 1000!         LACC    TX2
     201 0099 3000!         SUB     TX1
     202 009a 9000!         SACL    CMPR1_BUFF                      ;T1结果。
     203                    
     204 009b 1000!         LACC    TX2
     205 009c 2000!         ADD     TX2
     206 009d 9000!         SACL    CMPR2_BUFF                      ;T2结果
     207 009e 7980          B       END_CAL_T                       ;结束计算
         009f 00da' 
     208            ;----------------------
     209 00a0       NOT3:   
     210 00a0 7b90          BANZ    NOT4    ;AR0-4
         00a1 00ac' 
     211            ;扇区III
     212 00a2 ae00!         SPLK    #1010011001100110B,ACTRA_BUFF   ;逆时针转,空间矢量010
         00a3 a666  
     213                    
     214 00a4 1000!         LACC    TX2
     215 00a5 2000!         ADD     TX2
     216 00a6 9000!         SACL    CMPR1_BUFF                      ;T1结果
     217                    
     218 00a7 1000!         LACC    TX1
     219 00a8 2000!         ADD     TX2
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00  Wed Jun  8 17:23:49 2005
Copyright (c) 1987-1999  Texas Instruments Incorporated 
SVPWM.asm                                                            PAGE    6

     220 00a9 9000!         SACL    CMPR2_BUFF                      ;T2结果
     221 00aa 7980          B       END_CAL_T                       ;结束计算
         00ab 00da' 
     222            ;----------------------
     223 00ac       NOT4:   
     224 00ac 7b90          BANZ    NOT5    ;AR0-5
         00ad 00b8' 
     225            ;扇区IV
     226 00ae ae00!         SPLK    #1011011001100110B,ACTRA_BUFF   ;逆时针转,空间矢量011
         00af b666  
     227                    
     228 00b0 1000!         LACC    TX1
     229 00b1 3000!         SUB     TX2
     230 00b2 9000!         SACL    CMPR1_BUFF                      ;T1结果。
     231                    
     232 00b3 1000!         LACC    TX1
     233 00b4 2000!         ADD     TX2
     234 00b5 9000!         SACL    CMPR2_BUFF                      ;T2结果
     235 00b6 7980          B       END_CAL_T                       ;结束计算
         00b7 00da' 
     236            ;---------------------- 
     237 00b8       NOT5:   
     238 00b8 7b90          BANZ    NOT6    ;AR0-6
         00b9 00c4' 
     239            ;扇区V的第四象限
     240 00ba ae00!         SPLK    #1001011001100110B,ACTRA_BUFF   ;逆时针转,空间矢量001
         00bb 9666  
     241                    
     242 00bc 1000!         LACC    TX2
     243 00bd 3000!         SUB     TX1
     244 00be 9000!         SACL    CMPR1_BUFF                      ;T1结果
     245                    
     246 00bf 1000!         LACC    TX2
     247 00c0 2000!         ADD     TX2
     248 00c1 9000!         SACL    CMPR2_BUFF                      ;T2结果
     249 00c2 7980          B       END_CAL_T                       ;结束计算
         00c3 00da' 
     250            ;---------------------- 
     251 00c4       NOT6:   
     252 00c4 7b90          BANZ    NOT7    ;AR0-7
         00c5 00d0' 
     253            ;扇区V的第三象限
     254 00c6 ae00!         SPLK    #1001011001100110B,ACTRA_BUFF   ;逆时针转,空间矢量001
         00c7 9666  
     255                    
     256 00c8 1000!         LACC    TX1
     257 00c9 2000!         ADD     TX2
     258 00ca 9000!         SACL    CMPR1_BUFF                      ;T1结果
     259                    
     260 00cb 1000!         LACC    TX2
     261 00cc 2000!         ADD     TX2
     262 00cd 9000!         SACL    CMPR2_BUFF                      ;T2结果
     263 00ce 7980          B       END_CAL_T                       ;结束计算
         00cf 00da' 
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00  Wed Jun  8 17:23:49 2005
Copyright (c) 1987-1999  Texas Instruments Incorporated 
SVPWM.asm                                                            PAGE    7

     264            ;---------------------- 
     265 00d0       NOT7:
     266            ;扇区VI
     267 00d0 ae00!         SPLK    #1101011001100110B,ACTRA_BUFF   ;逆时针转,空间矢量101
         00d1 d666  
     268                    
     269 00d2 1000!         LACC    TX2
     270 00d3 2000!         ADD     TX2
     271 00d4 9000!         SACL    CMPR1_BUFF                      ;T1结果
     272                    
     273 00d5 1000!         LACC    TX1
     274 00d6 2000!         ADD     TX2
     275 00d7 9000!         SACL    CMPR2_BUFF                      ;T2结果
     276 00d8 7980          B       END_CAL_T                       ;结束计算
         00d9 00da' 
     277            ;----------------------------------------
     278 00da       END_CAL_T:
     279 00da bf00          SPM     0
     280 00db ef00          RET

 No Errors,  No Warnings

⌨️ 快捷键说明

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