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

📄 main.lst

📁 PMSM电机的磁场定向控制
💻 LST
📖 第 1 页 / 共 2 页
字号:
  262         //                register. After calling of this function and write on the 
  263         //                protected register is the security level set to low 
  264         //                protected mode.
  265         //
  266         //----------------------------------------------------------------------------
  267         // @Returnvalue   None
  268         //
  269         //----------------------------------------------------------------------------
  270         // @Parameters    None
  271         //
  272         //----------------------------------------------------------------------------
  273         // @Date          19.12.2003
  274         //
  275         //****************************************************************************
  276         
  277         // USER CODE BEGIN (UnlockProtecReg,1)
  278         
  279         // USER CODE END
  280         
  281         void MAIN_vUnlockProtecReg(void)
  282         {
  283  1        ubyte ubPASSWORD;
  284  1      
  285  1        if((SCUSLS & 0x1800) == 0x0800)      // if low protected mode
  286  1        {
  287  2      
  288  2          ubPASSWORD = SCUSLS & 0x00FF;
*** WARNING C192 IN LINE 288 OF MAIN.C: '=': value truncated
  289  2          ubPASSWORD = ~ubPASSWORD;
  290  2          SCUSLC = 0x8E00 | ubPASSWORD;      // command 4
  291  2      
  292  2        }  // end if low protected mode
  293  1      
  294  1        if((SCUSLS & 0x1800) == 0x1800)      // if write protected mode
  295  1        {
  296  2          SCUSLC = 0xAAAA;                   // command 0
  297  2          SCUSLC = 0x5554;                   // command 1
  298  2      
  299  2          ubPASSWORD = SCUSLS & 0x00FF;
*** WARNING C192 IN LINE 299 OF MAIN.C: '=': value truncated
  300  2          ubPASSWORD = ~ubPASSWORD;
  301  2      
C166 COMPILER V6.04, MAIN                                                                  07/02/2007 15:03:29 PAGE 6   

  302  2          SCUSLC = 0x9600 | ubPASSWORD;      // command 2
  303  2          SCUSLC = 0x0800;                   // command 3; new PASSWOR is 0x00
  304  2      
  305  2          ubPASSWORD = SCUSLS & 0x00FF;
*** WARNING C192 IN LINE 305 OF MAIN.C: '=': value truncated
  306  2          ubPASSWORD = ~ubPASSWORD;
  307  2          SCUSLC = 0x8E00 | ubPASSWORD;      // command 4
  308  2      
  309  2        }  // end if write protected mode
  310  1      
  311  1      } //  End of function MAIN_vUnlockProtecReg
  312         
  313         
  314         //****************************************************************************
  315         // @Function      void main(void) 
  316         //
  317         //----------------------------------------------------------------------------
  318         // @Description   This is the main function.
  319         //
  320         //----------------------------------------------------------------------------
  321         // @Returnvalue   None
  322         //
  323         //----------------------------------------------------------------------------
  324         // @Parameters    None
  325         //
  326         //----------------------------------------------------------------------------
  327         // @Date          19.12.2003
  328         //
  329         //****************************************************************************
  330         
  331         
  332         void ChangeDirection(void)
  333         {
  334  1              dir_flag = !dir_flag;
  335  1      }
  336         
  337         void SetSpeed(int new_speed)
  338         {
  339  1              speed = new_speed<<3;           // new_speed * 8        
  340  1      }
  341         
  342         void StartPwm(void)
  343         {
  344  1              CCU6_TCTR4                      =       0x0002;                 //starten von T12 der CAPCOM 6
  345  1      }
  346         
  347         void StopPwm(void)
  348         {
  349  1              CCU6_TCTR4                      =       0x0001;                 //stoppen von T12 der CAPCOM 6
  350  1              CCU6_CMPMODIF           =       0x0700;                 //reset output line
  351  1      }
  352         
  353         void EnableDriver(void)
  354         {
  355  1              if (on_flag==OFF)
  356  1              {
  357  2              P9=0x0010;                  // RESET PORT 9.4,5 OUTPUT LATCH
  358  2                      on_flag=ON;
  359  2              }
  360  1              else
  361  1              {
  362  2                      P9=0x0020;                  // SET PORT 9.4,5 OUTPUT LATCH
C166 COMPILER V6.04, MAIN                                                                  07/02/2007 15:03:29 PAGE 7   

  363  2                      on_flag=OFF;
  364  2              }
  365  1      }
  366         
  367         void Comm_Asc0_Send(unsigned char buff)
  368         {
  369  1      
  370  1            ASC0_TBUF = buff;
  371  1            while(!ASC0_TIC_IR){;}
  372  1            ASC0_TIC_IR = 0;
  373  1      }
  374         
  375         // USER CODE BEGIN (Main,1)
  376         uchar input (void)
  377         {
  378  1        uchar in = 0; 
  379  1        //do 
  380  1        //{
  381  1          while (!ASC0_RIC_IR) _nop_();
  382  1          ASC0_RIC_IR=0;
  383  1          in= (char)ASC0_RBUF;
  384  1        //}while (in != 'a' && in != 'b' && in != 'd'  && in != 'e' && in != '0' && in != '1' && in != '2' && in
             - != '3'&& in != '4' && in != '5' && in != '6'&& in != '7' && in != '8' && in != '9'&& in != '+'&& in != '-');
  385  1        return in;
  386  1        // 接收测试软件(串口0)的数据
  387  1        /*unsigned char i;
  388  1         if(ASC0_RIC_IR)
  389  1         {
  390  1            ASC0_RIC_IR = 0;
  391  1            comm_asc0_i = 0;
  392  1            asc0_rece_buf[comm_asc0_receCount++] = (unsigned char)ASC0_RBUF;
  393  1         }
  394  1         if((GPT12E_T2IC_IR) && (comm_asc0_receCount>0))
  395  1         {
  396  1            GPT12E_T2IC_IR = 0;
  397  1            comm_asc0_i++;
  398  1         }
  399  1         if(comm_asc0_i>1)
  400  1         {
  401  1            comm_asc0_i = 0;
  402  1                switch(asc0_rece_buf[0])
  403  1             {
  404  1                 case 0x0a:
  405  1                 {
  406  1                                 StartPwm();
  407  1                                 break;
  408  1                         }
  409  1                         case 0x0b:
  410  1                 {
  411  1                                 StopPwm();
  412  1                                  break;
  413  1                         }
  414  1                         case 0x0e:
  415  1                 {
  416  1                                EnableDriver(); break;
  417  1                         }
  418  1                         case 0x0d:
  419  1                 {
  420  1                                ChangeDirection(); break;
  421  1                         }
  422  1                         case 0x0f:
  423  1                         {
C166 COMPILER V6.04, MAIN                                                                  07/02/2007 15:03:29 PAGE 8   

  424  1                                if(asc0_rece_buf[1]<70) SetSpeed(asc0_rece_buf[1]);
  425  1                                else SetSpeed(70);
  426  1                                break;
  427  1                         }
  428  1                         case 0x00:
  429  1                         {
  430  1                                ENC_OFFSET = (unsigned int)asc0_rece_buf[1]<<8 + asc0_rece_buf[2];
  431  1                                break;
  432  1                         }
  433  1            }
  434  1                Comm_Asc0_Send(asc0_rece_buf,3);
  435  1                for(i=0;i<comm_asc0_receCount;i++)
  436  1            {
  437  1               asc0_rece_buf[i] = 0x00;
  438  1            }
  439  1            comm_asc0_receCount = 0;
  440  1         }*/
  441  1      }
  442         
  443         
  444         // USER CODE END
  445         extern int test_position;
  446         void main(void)
  447         {
  448  1        // USER CODE BEGIN (Main,2)
  449  1              Configure_PLL();
  450  1              Configure_SYSCON3();
  451  1        // USER CODE END
  452  1      
  453  1        MAIN_vInit();
  454  1      
  455  1        // USER CODE BEGIN (Main,4)
  456  1      
  457  1      
  458  1              CCU6_TCTR4                      =       0x0002;                 // Start Timer 12 of CAPCOM 6
  459  1              InitFOC();      
  460  1      
  461  1              while (1)  
  462  1              {       
  463  2                  P7_P6 = 1; 
  464  2                      select=input();
  465  2                      //input();
  466  2                  switch (select)
  467  2                      {
  468  3                              case 0x0a:  StartPwm();  break;
  469  3                              case 0x0b:  StopPwm();  break;
  470  3                              case 0x0c:  EnableDriver();  break;
  471  3                              case 0x0d:  ChangeDirection();  break;
  472  3                              case 0x00:  SetSpeed(0);  break;
  473  3                              case 0x01:  SetSpeed(10);  break;
  474  3                              case 0x02:  SetSpeed(20);   break;
  475  3                              case 0x03:  SetSpeed(30);   break;
  476  3                              case 0x04:  SetSpeed(40);   break;
  477  3                              case 0x05:  SetSpeed(50);   break;
  478  3                              case 0x06:  SetSpeed(60);   break;
  479  3                              case 0x07:  SetSpeed(70);   break;
  480  3                              case 0x08:  SetSpeed(100);   break;
  481  3                              case 0x09:  SetSpeed(150);   break;
  482  3                              case 0x99:  SetSpeed(200);   break;
  483  3                              case 0xaa:  SetSpeed(300);   break;
  484  3                              case 0x0f:  Comm_Asc0_Send((uchar)(GPT12E_T3>>8)); Comm_Asc0_Send((uchar)GPT12E_T3); Comm_Asc0_Send((uc
             -har)(test_position>>8)); Comm_Asc0_Send((uchar)test_position);   break;
C166 COMPILER V6.04, MAIN                                                                  07/02/2007 15:03:29 PAGE 9   

  485  3                              default:  ENC_OFFSET = (uint)(select&0xf0)<<(select&0x0f); 
  486  3                              //case 'f':  SetSpeed(set_speed); break;
  487  3                              //case '+':  ENC_OFFSET=ENC_OFFSET+50;
  488  3                              //case '-':  ENC_OFFSET=ENC_OFFSET-50;
  489  3                      }
  490  2                        Comm_Asc0_Send(select);
  491  2              P7_P6 = 0;
  492  2              }
  493  1      
  494  1        // USER CODE END
  495  1      
  496  1      } //  End of function main
  497         
  498         
  499         
  500         // USER CODE BEGIN (MAIN_General,10)
  501         
  502         // USER CODE END
  503         


MODULE INFORMATION:   INITIALIZED  UNINITIALIZED
  CODE SIZE        =         600     --------
  NEAR-CONST SIZE  =    --------     --------
  FAR-CONST SIZE   =    --------     --------
  HUGE-CONST SIZE  =    --------     --------
  XHUGE-CONST SIZE =    --------     --------
  NEAR-DATA SIZE   =         114     --------
  FAR-DATA SIZE    =    --------     --------
  XHUGE-DATA SIZE  =    --------     --------
  IDATA-DATA SIZE  =          10     --------
  SDATA-DATA SIZE  =    --------     --------
  BDATA-DATA SIZE  =    --------     --------
  HUGE-DATA SIZE   =    --------     --------
  BIT SIZE         =           3     --------
  INIT'L SIZE      =         138     --------
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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