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

📄 main.lst

📁 keil下开发的永磁同步电机矢量控制程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
  223  1        //   initializes the Parallel Ports
  224  1        IO_vInit();
  225  1      
  226  1        //   initializes the Asynchronous/Synchronous Serial Interface (ASC0)
  227  1        ASC0_vInit();
  228  1      
  229  1        //   initializes the General Purpose Timer Unit (GPT1)
  230  1        GPT1_vInit();
  231  1      
  232  1        //   initializes the Capture / Compare Unit 1 (CAPCOM1)
  233  1        CC1_vInit();
  234  1      
  235  1        //   initializes the Analog / Digital Converter (ADC)
  236  1        ADC_vInit();
  237  1      
  238  1        //   initializes the Capture / Compare Unit 6 (CCU6)
  239  1        CCU6_vInit();
  240  1      
  241  1        //   initializes the Interrupt Controller (INT)
C166 COMPILER V4.27, MAIN                                                                  12/19/2003 11:51:09 PAGE 5   

  242  1        INT_vInit();
  243  1      
  244  1        // USER CODE BEGIN (Init,3)
  245  1      
  246  1        // USER CODE END
  247  1      
  248  1        //   globally enable interrupts
  249  1        PSW_IEN        =  1;          
  250  1      
  251  1      } //  End of function MAIN_vInit
  252         
  253         
  254         //****************************************************************************
  255         // @Function      void MAIN_vUnlockProtecReg(void) 
  256         //
  257         //----------------------------------------------------------------------------
  258         // @Description   This function makes it possible to write one protected 
  259         //                register. After calling of this function and write on the 
  260         //                protected register is the security level set to low 
  261         //                protected mode.
  262         //
  263         //----------------------------------------------------------------------------
  264         // @Returnvalue   None
  265         //
  266         //----------------------------------------------------------------------------
  267         // @Parameters    None
  268         //
  269         //----------------------------------------------------------------------------
  270         // @Date          19.12.2003
  271         //
  272         //****************************************************************************
  273         
  274         // USER CODE BEGIN (UnlockProtecReg,1)
  275         
  276         // USER CODE END
  277         
  278         void MAIN_vUnlockProtecReg(void)
  279         {
  280  1        ubyte ubPASSWORD;
  281  1      
  282  1        if((SCUSLS & 0x1800) == 0x0800)      // if low protected mode
  283  1        {
  284  2      
  285  2          ubPASSWORD = SCUSLS & 0x00FF;
  286  2          ubPASSWORD = ~ubPASSWORD;
  287  2          SCUSLC = 0x8E00 | ubPASSWORD;      // command 4
  288  2      
  289  2        }  // end if low protected mode
  290  1      
  291  1        if((SCUSLS & 0x1800) == 0x1800)      // if write protected mode
  292  1        {
  293  2          SCUSLC = 0xAAAA;                   // command 0
  294  2          SCUSLC = 0x5554;                   // command 1
  295  2      
  296  2          ubPASSWORD = SCUSLS & 0x00FF;
  297  2          ubPASSWORD = ~ubPASSWORD;
  298  2      
  299  2          SCUSLC = 0x9600 | ubPASSWORD;      // command 2
  300  2          SCUSLC = 0x0800;                   // command 3; new PASSWOR is 0x00
  301  2      
  302  2          ubPASSWORD = SCUSLS & 0x00FF;
  303  2          ubPASSWORD = ~ubPASSWORD;
C166 COMPILER V4.27, MAIN                                                                  12/19/2003 11:51:09 PAGE 6   

  304  2          SCUSLC = 0x8E00 | ubPASSWORD;      // command 4
  305  2      
  306  2        }  // end if write protected mode
  307  1      
  308  1      } //  End of function MAIN_vUnlockProtecReg
  309         
  310         
  311         //****************************************************************************
  312         // @Function      void main(void) 
  313         //
  314         //----------------------------------------------------------------------------
  315         // @Description   This is the main function.
  316         //
  317         //----------------------------------------------------------------------------
  318         // @Returnvalue   None
  319         //
  320         //----------------------------------------------------------------------------
  321         // @Parameters    None
  322         //
  323         //----------------------------------------------------------------------------
  324         // @Date          19.12.2003
  325         //
  326         //****************************************************************************
  327         
  328         // USER CODE BEGIN (Main,1)
  329         char input (void)
  330         {
  331  1        char in = ' '; 
  332  1        do 
  333  1        {
  334  2          while (!ASC0_RIC_IR) _nop_();
  335  2          ASC0_RIC_IR=0;
  336  2          in= (char)ASC0_RBUF;
  337  2        }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');
  338  1        return in;
  339  1      
  340  1      }
  341         
  342         void ChangeDirection(void)
  343         {
  344  1              dir_flag = !dir_flag;
  345  1      }
  346         
  347         void SetSpeed(int new_speed)
  348         {
  349  1              speed = new_speed<<3;           // new_speed * 8        
  350  1      }
  351         
  352         void StartPwm(void)
  353         {
  354  1              CCU6_TCTR4                      =       0x0002;                 //starten von T12 der CAPCOM 6
  355  1      }
  356         
  357         void StopPwm(void)
  358         {
  359  1              CCU6_TCTR4                      =       0x0001;                 //stoppen von T12 der CAPCOM 6
  360  1              CCU6_CMPMODIF           =       0x0700;                 //reset output line
  361  1      }
  362         
  363         void EnableDriver(void)
  364         {
C166 COMPILER V4.27, MAIN                                                                  12/19/2003 11:51:09 PAGE 7   

  365  1              if (on_flag==OFF)
  366  1              {
  367  2              P9=0x0010;                  // RESET PORT 9.4,5 OUTPUT LATCH
  368  2                      on_flag=ON;
  369  2              }
  370  1              else
  371  1              {
  372  2                      P9=0x0020;                  // SET PORT 9.4,5 OUTPUT LATCH
  373  2                      on_flag=OFF;
  374  2              }
  375  1      }
  376         
  377         // USER CODE END
  378         
  379         void main(void)
  380         {
  381  1        // USER CODE BEGIN (Main,2)
  382  1              Configure_PLL();
  383  1              Configure_SYSCON3();
  384  1        // USER CODE END
  385  1      
  386  1        MAIN_vInit();
  387  1      
  388  1        // USER CODE BEGIN (Main,4)
  389  1      
  390  1      
  391  1              CCU6_TCTR4                      =       0x0002;                 // Start Timer 12 of CAPCOM 6
  392  1              InitFOC();      
  393  1      
  394  1              while (1)  
  395  1              {       
  396  2              P7_P6 = 1; 
  397  2                      select=input();
  398  2      
  399  2                  switch (select)
  400  2                      {
  401  3                              case 'a':  StartPwm();  break;
  402  3                              case 'b':  StopPwm(); break;
  403  3                              case 'e':  EnableDriver(); break;
  404  3                              case 'd':  ChangeDirection(); break;
  405  3                              case '0':  SetSpeed(0); break;
  406  3                              case '1':  SetSpeed(10); break;
  407  3                              case '2':  SetSpeed(20); break;
  408  3                              case '3':  SetSpeed(30); break;
  409  3                              case '4':  SetSpeed(40); break;
  410  3                              case '5':  SetSpeed(50); break;
  411  3                              case '6':  SetSpeed(60); break;
  412  3                              case '7':  SetSpeed(70); break;
  413  3                              case '8':  SetSpeed(1); break;
  414  3                              case '9':  SetSpeed(5); break;
  415  3                      }
  416  2              P7_P6 = 0;
  417  2              }
  418  1      
  419  1        // USER CODE END
  420  1      
  421  1      } //  End of function main
  422         
  423         
  424         
  425         // USER CODE BEGIN (MAIN_General,10)
  426         
C166 COMPILER V4.27, MAIN                                                                  12/19/2003 11:51:09 PAGE 8   

  427         // USER CODE END
  428         


MODULE INFORMATION:   INITIALIZED  UNINITIALIZED
  CODE SIZE        =         552     --------
  NEAR-CONST SIZE  =    --------     --------
  FAR-CONST SIZE   =    --------     --------
  HUGE-CONST SIZE  =    --------     --------
  XHUGE-CONST SIZE =    --------     --------
  NEAR-DATA SIZE   =         107     --------
  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      =         126     --------
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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