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

📄 pmsm32.lst

📁 本程序来自TI公司网站原程序,其功能是通过传统的矢量控制算法来实现对永磁同步电机的控制,矢量控制采用双闭环结构
💻 LST
📖 第 1 页 / 共 5 页
字号:
     787            ;>>>>           speed.K2_fr = 32361;
     788            ;>>>>           speed.K3_fr = 407;
     789            ;>>>>           speed.rpm_max = 6000;
     790            ;>>>>           ilg2_vdc.init(&ilg2_vdc);
     791            ;>>>>           dac.qptr0=&qep.theta_elec; 
     792            ;>>>>           dac.qptr1=&sfoc.svgen.va;
     793            ;>>>>           dac.qptr2=&sfoc.smo.thetae;  
     794            ;>>>>           dac.qptr3=&sfoc.svgen.vb;
     795            ;>>>>   #endif /* (BUILDLEVEL==LEVEL5) */  
     796            ;>>>>   #if (BUILDLEVEL==LEVEL6)
     797            ;>>>>   #if     TARGET==F243                      
     798            ;>>>>           pwm.period_max=667;          /* This is based on 15kHz PWM frequency (20MHz) */
     799            ;>>>>   #elif   TARGET==F2407                                                          
     800            ;>>>>           pwm.period_max=1333;       /* This is based on 15kHz PWM frequency (40MHz)*/
     801            ;>>>>   #endif  /* TARGET */            
     802            ;>>>>           SFOC_TI_Init(&sfoc);
     803            ;>>>>           rtmon_init();            /* Call the monitor init function           */
     804            ;>>>>           enable_ints();           /* Set off the system running.              */
     805            ;>>>>           while(drive.enable_flg==0)
     806            ;>>>>           drive.init(&drive);
     807            ;>>>>           pwm.init(&pwm);          
     808            ;>>>>           qep.init(&qep);     
     809            ;>>>>           speed.K1_fr = 4800;  
     810            ;>>>>           speed.K2_fr = 32361;
     811            ;>>>>           speed.K3_fr = 407;
     812            ;>>>>           speed.rpm_max = 6000;
     813            ;>>>>           ilg2_vdc.init(&ilg2_vdc);
     814            ;>>>>           dac.qptr0=&ilg2_vdc.Imeas_a;
     815            ;>>>>           dac.qptr1=&sfoc.svgen.va;
     816            ;>>>>           dac.qptr2=&sfoc.smo.thetae;
     817            ;>>>>           dac.qptr3=&sfoc.svgen.vb;
     818            ;>>>>   #endif /* (BUILDLEVEL==LEVEL6) */  
     819            ;>>>>   #if (BUILDLEVEL==LEVEL7)
     820            ;>>>>   #if     TARGET==F243                      
     821            ;>>>>           pwm.period_max=667;          /* This is based on 15kHz PWM frequency (20MHz) */
     822            ;>>>>   #elif   TARGET==F2407                                                          
     823            ;>>>>           pwm.period_max=1333;       /* This is based on 15kHz PWM frequency (40MHz)*/
     824            ;>>>>   #endif  /* TARGET */            
     825            ;>>>>           SFOC_TI_Init(&sfoc);
     826            ;>>>>           rtmon_init();            /* Call the monitor init function           */
TMS320C24xx COFF Assembler Version 7.02  Mon Apr 28 15:46:07 2003
Copyright (c) 1987-2002  Texas Instruments Incorporated 
../temp/pmsm32.asm                                                   PAGE   18

     827            ;>>>>           enable_ints();           /* Set off the system running.              */
     828            ;>>>>           while(drive.enable_flg==0)
     829            ;>>>>           drive.init(&drive);
     830            ;>>>>           pwm.init(&pwm);          
     831            ;>>>>           qep.init(&qep);     
     832            ;>>>>           speed.K1_fr = 4800;  
     833            ;>>>>           speed.K2_fr = 32361;
     834            ;>>>>           speed.K3_fr = 407;
     835            ;>>>>           speed.rpm_max = 6000;
     836            ;>>>>           ilg2_vdc.init(&ilg2_vdc);
     837            ;>>>>           dac.qptr0=&ilg2_vdc.Imeas_a;
     838            ;>>>>           dac.qptr1=&sfoc.svgen.vb;
     839            ;>>>>           dac.qptr2=&sfoc.smo.thetae;
     840            ;>>>>           dac.qptr3=&sfoc.svgen.vc;
     841            ;>>>>   #endif /* (BUILDLEVEL==LEVEL7) */  
     842            ;>>>>   #if     TARGET==F243                      
     843            ;>>>>           EVIFRA=0x0ffff;           /* Clear all Group A EV interrupt flags    */
     844            ;>>>>   #elif   TARGET==F2407                                                          
     845 0037 bf80          LALK    _sfoc+128
         0038 00b6- 
     846 0039 900a-         SACL    _dac+3
     847                    .line   542
     848            ;>>>>           EVAIFRA=0x0ffff;          /* Clear all EV1 Group A EV interrupt flags*/
     849            ;>>>>   #endif              
     850            ;>>>>           while(1)             /* Nothing running in the background at present */
     851 003a ae80          SPLK    #-1,* 
         003b ffff  
     852 003c       L3:
     853                    .line   550
     854 003c 7980          B       L3
         003d 003c' 
     855                    .endfunc        655,000000000H,1
     856            
     857                    .sym    _c_int02,_c_int02,32,2,0
     858                    .globl  _c_int02
     859            
     860                    .func   658
     861            ;>>>>   void interrupt c_int02()
     862            ******************************************************
     863            * FUNCTION DEF : _c_int02
     864            ******************************************************
     865 003e       _c_int02:
     866 003e 7a80          CALL    I$$SAVE
         003f 0000! 
     867 0040 8180          SAR     AR1,*
     868 0041 b001          LARK    AR0,1
     869 0042 00e0          LAR     AR0,*0+
     870            
     871                    .line   3
     872            ;>>>>        asm("      CLRC     XF ");
     873 0043 be4c        CLRC     XF 
     874                    .line   5
     875            ;>>>>        isr_ticker++;    
     876            ;>>>>   #if (BUILDLEVEL==LEVEL1)
TMS320C24xx COFF Assembler Version 7.02  Mon Apr 28 15:46:07 2003
Copyright (c) 1987-2002  Texas Instruments Incorporated 
../temp/pmsm32.asm                                                   PAGE   19

     877            ;>>>>   #if     TARGET==F243                      
     878            ;>>>>           EVIFRA=0x0ffff;           /* Clear all Group A EV interrupt flags    */
     879            ;>>>>   #elif   TARGET==F2407                                                          
     880 0044 bc00-         LDPK    _isr_ticker
     881 0045 1000-         LAC     _isr_ticker
     882 0046 b801          ADDK    1
     883 0047 9000-         SACL    _isr_ticker
     884                    .line   13
     885            ;>>>>           EVAIFRA=0x0ffff;          /* Clear all EV1 Group A EV interrupt flags*/
     886            ;>>>>   #endif              
     887 0048 bf0b          LARK    AR3,29743
         0049 742f  
     888 004a 8b8b          MAR     * ,AR3
     889 004b ae89          SPLK    #-1,* ,AR1
         004c ffff  
     890                    .line   19
     891            ;>>>>           drive.calc(&drive);
     892 004d bf80          LALK    _drive+0
         004e 0004- 
     893 004f 90a0          SACL    *+
     894 0050 1006-         LAC     _drive+2
     895 0051 be30          CALA
     896 0052 8b90          MAR     *-
     897                    .line   25
     898            ;>>>>           SFOC_TI_Run(&sfoc); 
     899 0053 bf80          LALK    _sfoc+0
         0054 0036- 
     900 0055 90a0          SACL    *+
     901 0056 7a80          CALL    _SFOC_TI_Run
         0057 0000! 
     902 0058 8b90          MAR     *-
     903                    .line   31
     904            ;>>>>           pwm.mfunc_c1 = sfoc.svgen.va;         
     905 0059 bc00-         LDPK    _sfoc+32
     906 005a a956-         BLDD    _sfoc+32,#_pwm+2
         005b 000f- 
     907                    .line   32
     908            ;>>>>           pwm.mfunc_c2 = sfoc.svgen.vb;
     909 005c a810-         BLKD    #_sfoc+33,_pwm+3
         005d 0057- 
     910                    .line   33
     911            ;>>>>           pwm.mfunc_c3 = sfoc.svgen.vc;
     912 005e a811-         BLKD    #_sfoc+34,_pwm+4
         005f 0058- 
     913                    .line   34
     914            ;>>>>           pwm.update(&pwm);
     915 0060 bf80          LALK    _pwm+0
         0061 000d- 
     916 0062 90a0          SACL    *+
     917 0063 1013-         LAC     _pwm+6
     918 0064 be30          CALA
     919 0065 8b90          MAR     *-
     920                    .line   39
     921            ;>>>>           dac.update(&dac);
TMS320C24xx COFF Assembler Version 7.02  Mon Apr 28 15:46:07 2003
Copyright (c) 1987-2002  Texas Instruments Incorporated 
../temp/pmsm32.asm                                                   PAGE   20

     922            ;>>>>   #endif /* BUILDLEVEL==LEVEL1 */
     923            ;>>>>   #if (BUILDLEVEL==LEVEL2)
     924            ;>>>>   #if     TARGET==F243                      
     925            ;>>>>           EVIFRA=0x0ffff;           /* Clear all Group A EV interrupt flags    */
     926            ;>>>>   #elif   TARGET==F2407                                                          
     927            ;>>>>           EVAIFRA=0x0ffff;          /* Clear all EV1 Group A EV interrupt flags*/
     928            ;>>>>   #endif              
     929            ;>>>>           drive.calc(&drive);
     930            ;>>>>           SFOC_TI_Run(&sfoc); 
     931            ;>>>>           pwm.mfunc_c1 = sfoc.svgen.va;         
     932            ;>>>>           pwm.mfunc_c2 = sfoc.svgen.vb;
     933            ;>>>>           pwm.mfunc_c3 = sfoc.svgen.vc;
     934            ;>>>>           pwm.update(&pwm);
     935            ;>>>>           ilg2_vdc.read(&ilg2_vdc);
     936            ;>>>>                   sfoc.current_abc.a = ilg2_vdc.Imeas_a;
     937            ;>>>>                   sfoc.current_abc.b = ilg2_vdc.Imeas_b;
     938            ;>>>>                   sfoc.current_abc.c = ilg2_vdc.Imeas_c;        
     939            ;>>>>           sfoc.Vbus = ilg2_vdc.Vdc_meas;
     940            ;>>>>           dac.update(&dac);
     941            ;>>>>   #endif /* BUILDLEVEL==LEVEL2 */
     942            ;>>>>   #if (BUILDLEVEL==LEVEL3)
     943            ;>>>>   #if     TARGET==F243                      
     944            ;>>>>           EVIFRA=0x0ffff;           /* Clear all Group A EV interrupt flags    */
     945            ;>>>>   #elif   TARGET==F2407                                                          
     946            ;>>>>           EVAIFRA=0x0ffff;          /* Clear all EV1 Group A EV interrupt flags*/
     947            ;>>>>   #endif              
     948            ;>>>>           drive.calc(&drive);
     949            ;>>>>           SFOC_TI_Run(&sfoc); 
     950            ;>>>>           pwm.mfunc_c1 = sfoc.svgen.va;         
     951            ;>>>>           pwm.mfunc_c2 = sfoc.svgen.vb;
     952            ;>>>>           pwm.mfunc_c3 = sfoc.svgen.vc;
     953            ;>>>>           pwm.update(&pwm);
     954            ;>>>>           ilg2_vdc.read(&ilg2_vdc);
     955            ;>>>>                   sfoc.current_abc.a = ilg2_vdc.Imeas_a;
     956            ;>>>>                   sfoc.current_abc.b = ilg2_vdc.Imeas_b;
     957            ;>>>>                   sfoc.current_abc.c = ilg2_vdc.Imeas_c;        
     958            ;>>>>           sfoc.Vbus = ilg2_vdc.Vdc_meas;
     959            ;>>>>           dac.update(&dac);
     960            ;>>>>   #endif /* BUILDLEVEL==LEVEL3 */
     961            ;>>>>   #if (BUILDLEVEL==LEVEL4)
     962            ;>>>>   #if     TARGET==F243                      
     963            ;>>>>           EVIFRA=0x0ffff;           /* Clear all Group A EV interrupt flags    */
     964            ;>>>>   #elif   TARGET==F2407                                                          
     965            ;>>>>           EVAIFRA=0x0ffff;          /* Clear all EV1 Group A EV interrupt flags*/
     966            ;>>>>   #endif              
     967            ;>>>>           drive.calc(&drive);
     968            ;>>>>           SFOC_TI_Run(&sfoc); 
     969            ;>>>>           pwm.mfunc_c1 = sfoc.svgen.va;         
     970            ;>>>>           pwm.mfunc_c2 = sfoc.svgen.vb;
     971            ;>>>>           pwm.mfunc_c3 = sfoc.svgen.vc;
     972            ;>>>>           pwm.update(&pwm);
     973            ;>>>>           ilg2_vdc.read(&ilg2_vdc);
     974            ;>>>>                   sfoc.current_abc.a = ilg2_vdc.Imeas_a;
     975            ;>>>>                   sfoc.current_abc.b = ilg2_vdc.Imeas_b;
TMS320C24xx COFF Assembler Version 7.02  Mon Apr 28 15:46:07 2003
Copyright (c) 1987-2002  Texas Instruments Incorporated 
../temp/pmsm32.asm                                                   PAGE   21

     976            ;>>>>                   sfoc.current_abc.c = ilg2_vdc.Imeas_c;        
     977            ;>>>>           sfoc.Vbus = ilg2_vdc.Vdc_meas;
     978            ;>>>>           qep.calc(&qep);
     979            ;>>>>           sfoc.shaft_theta_elec = qep.theta_elec;
     980            ;>>>>           sfoc.shaft_direction = qep.dir_QEP;
     981            ;>>>>           speed.theta_elec = qep.theta_elec;
     982            ;>>>>           speed.calc(&speed);             
     983            ;>>>>           sfoc.Mea_spd = speed.speed_frq;
     984            ;>>>>           dac.update(&dac);
     985            ;>>>>   #endif /* BUILDLEVEL==LEVEL4 */
     986            ;>>>>   #if (BUILDLEVEL==LEVEL5)
     987            ;>>>>   #if     TARGET==F243                      
     988            ;>>>>           EVIFRA=0x0ffff;           /* Clear all Group A EV interrupt flags    */
     989            ;>>>>   #elif   TARGET==F2407                                                          
     990            ;>>>>           EVAIFRA=0x0ffff;          /* Clear all EV1 Group A EV interrupt flags*/
     991            ;>>>>   #endif              
     992            ;>>>>           drive.calc(&drive

⌨️ 快捷键说明

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