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

📄 svm.lst

📁 xc164的空间矢量调制的恒压频比控制
💻 LST
字号:
C166 COMPILER V6.02, SVM                                                                   08/11/2006 11:28:58 PAGE 1   


C166 COMPILER V6.02, COMPILATION OF MODULE SVM
OBJECT MODULE PLACED IN SVM.OBJ
COMPILER INVOKED BY: C:\Keil\C166\BIN\C166.EXE SVM.c MODV2 BROWSE MODV2 DEBUG

 stmt lvl     source

    1         #include "MAIN.H"
    2         #include "DEF.H"
    3         #include "TableQ15.h"
    4         
    5         unsigned int tk,tk1,to;                                 
    6         
    7         const int PulseMin_Div2 = 15;
    8         
    9         //****************************************************************************
   10         // @Function      void SVM (TComplex  *m, char *Sector) 
   11         //
   12         //----------------------------------------------------------------------------
   13         // @Description   This Function calculate the compare values t0, tk and tk+1  
   14         //                for the SVM. Then this values are written in the Shadow-
   15         //                Registers of CC6-Unit
   16         //                                      
   17         //                Execution time 4.2us @ 40MHz 
   18         //
   19         //----------------------------------------------------------------------------
   20         // @Returnvalue   None
   21         //
   22         //----------------------------------------------------------------------------
   23         // @Parameters    None
   24         //
   25         //----------------------------------------------------------------------------
   26         // @Date          15.10.2003
   27         //
   28         //****************************************************************************
   29         unsigned int tk_temp,tk1_temp;
   30         
   31         #ifdef _V_F_CONTROL_
   32         extern unsigned int V_F_Ratio;
   33         #endif
   34         
   35         int Ta,Tb,Tc;
   36         extern unsigned int TPWM;
   37         
   38         void CalcTimes(void)
   39                 {
   40  1                      int t_temp;
   41  1                      t_temp = tk+tk1;
   42  1                      if(t_temp > TPWM)
   43  1                      {
   44  2                              tk = tk*TPWM/(t_temp);
   45  2                              tk1 = tk1*TPWM/(t_temp);
   46  2                      }
   47  1                      Tc = (TPWM - tk -tk1) >>1;
   48  1                      Tb = Tc + tk;
   49  1                      Ta = Tb + tk1;
   50  1              }
   51         
   52         void SVM(TComplex  *m, char *Sector)
   53         {       
   54  1      
   55  1              int x;
C166 COMPILER V6.02, SVM                                                                   08/11/2006 11:28:58 PAGE 2   

   56  1              // determiination of the sector
   57  1              x=((long)m->imag*(long)SQRT3INV) >> 15; 
*** WARNING C192 IN LINE 57 OF SVM.C: '=': value truncated
   58  1              if (m->imag>0)
   59  1              {       // m.imag>0
   60  2                      if (m->real>0)
   61  2                      {       // Quadrant 1
   62  3                              if (x<m->real)  {*Sector=0;} else       {*Sector=1;}
   63  3                      }
   64  2                      else
   65  2                      {       // Quadrant 2
   66  3                              if (x< (-(m->real)))    {*Sector=2;} else       {*Sector=1;}
   67  3                      }
   68  2              }
   69  1              else
   70  1              {       // m.imag<0
   71  2                      if (m->real<0)
   72  2                      {       // Quadrant 3
   73  3                              if (x<m->real)  {*Sector=4;} else       {*Sector=3;}
   74  3                      }
   75  2                      else
   76  2                      {       // Quadrant 4
   77  3                              if (x< (-(m->real)))    {*Sector=4;} else       {*Sector=5;}
   78  3                      }
   79  2              }
   80  1              //calculate the time of the adjacent vectors
   81  1              tk1     =       ((long)CosVectorQ1_15[*Sector]*(long)m->imag - (long)SinVectorQ1_15[*Sector]*(long)m->real) >> 15;
*** WARNING C192 IN LINE 81 OF SVM.C: '=': value truncated
   82  1              tk1     =       ((long)tk1 * (long)TPWM) >> 15;
*** WARNING C192 IN LINE 82 OF SVM.C: '=': value truncated
   83  1      
   84  1              tk      =       ((long)SinVectorQ1_15[*Sector+1]*(long)m->real-(long)CosVectorQ1_15[*Sector+1]*(long)m->imag) >> 15;
*** WARNING C192 IN LINE 84 OF SVM.C: '=': value truncated
   85  1              tk      =       ((long)tk * (long)TPWM) >> 15;
*** WARNING C192 IN LINE 85 OF SVM.C: '=': value truncated
   86  1      
   87  1              #ifdef _V_F_CONTROL_
   88  1              tk1     =       ((long)tk1 * (long)V_F_Ratio) >> 16;
*** WARNING C192 IN LINE 88 OF SVM.C: '=': value truncated
   89  1              tk      =       ((long)tk * (long)V_F_Ratio) >> 16;
*** WARNING C192 IN LINE 89 OF SVM.C: '=': value truncated
   90  1              #endif 
   91  1      
   92  1              tk_temp = tk;
   93  1              tk1_temp = tk1;
   94  1      
   95  1      
   96  1              switch (*Sector)
   97  1              {  
   98  2      
   99  2              case 0:
  100  2                      CCU6_TCTR2     =  0x006A;
  101  2                      CalcTimes();    
  102  2                      CCU6_CC60SR=Tc;
  103  2                      CCU6_CC61SR=Tb;
  104  2                      CCU6_CC62SR=Ta;
  105  2                      break;  
  106  2      
  107  2              case 1:
  108  2                  CCU6_TCTR2     =  0x0066;
  109  2                      tk = tk1_temp;
  110  2                      tk1= tk_temp;
C166 COMPILER V6.02, SVM                                                                   08/11/2006 11:28:58 PAGE 3   

  111  2                      CalcTimes();
  112  2                      CCU6_CC60SR=Tb;
  113  2                      CCU6_CC61SR=Tc;
  114  2                      CCU6_CC62SR=Ta;
  115  2                      break;  
  116  2      
  117  2              case 2:
  118  2                      CCU6_TCTR2     =  0x006E;
  119  2                      CalcTimes();
  120  2                      CCU6_CC60SR=Ta;
  121  2                      CCU6_CC61SR=Tc;
  122  2                      CCU6_CC62SR=Tb;
  123  2                      break;
  124  2      
  125  2              case 3:
  126  2                      CCU6_TCTR2     =  0x006A;
  127  2                      tk = tk1_temp;
  128  2                      tk1= tk_temp;
  129  2                      CalcTimes();
  130  2                      CCU6_CC60SR=Ta;                                           
  131  2                      CCU6_CC61SR=Tb;           
  132  2                      CCU6_CC62SR=Tc;                   
  133  2                      break;  
  134  2      
  135  2              case 4:
  136  2                      CCU6_TCTR2     =  0x0066;
  137  2                      CalcTimes();                                                                                      
  138  2                      CCU6_CC60SR=Tb;                  
  139  2                      CCU6_CC61SR=Ta;
  140  2                      CCU6_CC62SR=Tc;
  141  2                      break;  
  142  2      
  143  2              case 5:
  144  2                      CCU6_TCTR2     =  0x006E;
  145  2                      tk = tk1_temp;
  146  2                      tk1= tk_temp;
  147  2                      CalcTimes();                                                                                       
  148  2                      CCU6_CC60SR=Tc;
  149  2                      CCU6_CC61SR=Ta;
  150  2                      CCU6_CC62SR=Tb;
  151  2                      break;            
  152  2              
  153  2              }
  154  1              CCU6_vEnableShadowTransfer_CCU6_TIMER_12();
  155  1      }
  156         
  157         


MODULE INFORMATION:   INITIALIZED  UNINITIALIZED
  CODE SIZE        =         726     --------
  NEAR-CONST SIZE  =        2592     --------
  FAR-CONST SIZE   =    --------     --------
  HUGE-CONST SIZE  =    --------     --------
  XHUGE-CONST SIZE =    --------     --------
  NEAR-DATA SIZE   =          20     --------
  FAR-DATA SIZE    =    --------     --------
  XHUGE-DATA SIZE  =    --------     --------
  IDATA-DATA SIZE  =    --------     --------
  SDATA-DATA SIZE  =    --------     --------
  BDATA-DATA SIZE  =    --------     --------
  HUGE-DATA SIZE   =    --------     --------
C166 COMPILER V6.02, SVM                                                                   08/11/2006 11:28:58 PAGE 4   

  BIT SIZE         =    --------     --------
  INIT'L SIZE      =          12     --------
END OF MODULE INFORMATION.


C166 COMPILATION COMPLETE.  7 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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