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

📄 ccu6.lst

📁 xc164的空间矢量调制的恒压频比控制
💻 LST
📖 第 1 页 / 共 2 页
字号:
  202  1        ///  - dead time generation is enabled
  203  1      
  204  1        ///  - generation interrupt on flag ICC61R is disabled
  205  1        ///  - generation interrupt on flag ICC61F is disabled
  206  1      
  207  1        CCU6_CC61SR    =  0x0000;      // load CCU6 capture/compare shadow register 
  208  1                                       // for channel 1
  209  1      
  210  1        ///  -----------------------------------------------------------------------
  211  1        ///  Configuration of CCU6 Channel 2:
  212  1        ///  -----------------------------------------------------------------------
  213  1        ///  - compare mode 3 is selected
  214  1        ///  - T12 modulation for output CC62 is enabled
  215  1        ///  - T13 modulation for output CC62 is disabled
  216  1        ///  - the trap functionality of the pin CC62 is disabled
  217  1        ///  - the compare output CC62 drives passive level while CC62ST is '0'
  218  1        ///  - the passive level of the output CC62 is '0'
  219  1        ///  - T12 modulation for output COUT62 is enabled
  220  1        ///  - T13 modulation for output COUT62 is disabled
  221  1        ///  - the trap functionality of the pin COUT62 is disabled
  222  1        ///  - the compare output COUT62 drives passive level while CC62ST is '1'
  223  1        ///  - the passive level of the output COUT62 is '0'
  224  1        ///  - dead time generation is enabled
  225  1      
  226  1        ///  - generation interrupt on flag ICC62R is disabled
  227  1        ///  - generation interrupt on flag ICC62F is disabled
  228  1      
  229  1        CCU6_CC62SR    =  0x0000;      // load CCU6 capture/compare shadow register 
  230  1                                       // for channel 2
  231  1      
  232  1        ///  -----------------------------------------------------------------------
  233  1        ///  Configuration of CCU6 Channel 3:
  234  1        ///  -----------------------------------------------------------------------
  235  1        ///  - T13 output is not inverted
  236  1      
  237  1      
  238  1        CCU6_CC63SR    =  0x0000;      // load CCU6 capture/compare shadow register 
  239  1                                       // for channel 3
  240  1      
  241  1      
C166 COMPILER V6.02, CCU6                                                                  08/11/2006 11:28:57 PAGE 5   

  242  1        CCU6_T12DTC    =  0x070A;      // load CCU6 dead time control register for 
  243  1                                       // timer T12
  244  1      
  245  1        CCU6_T12MSEL   =  0x0333;      // load CCU6 T12 campture/compare mode 
  246  1                                       // select register
  247  1      
  248  1        CCU6_CMPSTAT   =  0x2A00;      // load CCU6 compare status register
  249  1      
  250  1        CCU6_PSLR      =  0x0000;      // load CCU6 passive state level register
  251  1      
  252  1        CCU6_MODCTR    =  0x003F;      // load CCU6 modulation control register
  253  1      
  254  1        CCU6_MCMOUTS   =  0x0000;      // load CCU6 multi channel mode output 
  255  1                                       // control register
  256  1      
  257  1        CCU6_MCMCTR    =  0x0000;      // load CCU6 multi channel mode control 
  258  1                                       // register
  259  1      
  260  1        ///  - enable shadow transfer to T12 and T13
  261  1        CCU6_TCTR4     =  0x4040;      // load CCU6 timer control register 4
  262  1      
  263  1        ///  -----------------------------------------------------------------------
  264  1        ///  Configuration of CCU6 trap control:
  265  1        ///  -----------------------------------------------------------------------
  266  1        ///  - a trap can only be generated by SW by setting the bit TRPF
  267  1        ///  - the trap state is left when a zero-match of T12 (while counting up) 
  268  1        ///    is detected (synchronization to T12)
  269  1        ///  - bit TRPF is automatically cleared by HW (according to TRPPEN, TRPM0 
  270  1        ///    and TRPM1)
  271  1        ///  - trap interrupt is disabled
  272  1      
  273  1      
  274  1        CCU6_TRPCTR    =  0x0000;      // load CCU6 trap control register
  275  1      
  276  1        ///  -----------------------------------------------------------------------
  277  1        ///  Configuration of CCU6 interrupt control:
  278  1        ///  -----------------------------------------------------------------------
  279  1        ///  - for channel 0 interrupts is node I2 selected
  280  1        ///  - for channel 1 interrupts is node I2 selected
  281  1        ///  - for channel 2 interrupts is node I2 selected
  282  1        ///  - for correct hall event interrupt is node I2 selected
  283  1        ///  - for error interrupts is node I2 selected
  284  1        ///  - for T12 interrupts is node I2 selected
  285  1        ///  - for T13 interrupts is node I2 selected
  286  1      
  287  1      
  288  1        CCU6_INP       =  0x2AAA;      // load CCU6 capture/compare interrupt node 
  289  1                                       // pointer register
  290  1      
  291  1        CCU6_IEN       =  0x0080;      // load CCU6 capture/compare interrupt 
  292  1                                       // enable register
  293  1      
  294  1      
  295  1        ///  -----------------------------------------------------------------------
  296  1        ///  Configuration of the used CCU6 Channel Port Pins:
  297  1        ///  -----------------------------------------------------------------------
  298  1        ///  - P1L.0 is used for CAPCOM6 output (CC60)
  299  1        ///  - P1L.2 is used for CAPCOM6 output (CC61)
  300  1        ///  - P1L.4 is used for CAPCOM6 output (CC62)
  301  1        ///  - P1L.1 is used for CAPCOM6 output (COUT60)
  302  1        ///  - P1L.3 is used for CAPCOM6 output (COUT61)
  303  1        ///  - P1L.5 is used for CAPCOM6 output (COUT62)
C166 COMPILER V6.02, CCU6                                                                  08/11/2006 11:28:57 PAGE 6   

  304  1      
  305  1        ALTSEL0P1L    |=  0x003F;      // select alternate output function
  306  1        P1L   = (P1L   & ~(uword)0x003F) | 0x003F;    //set data register
  307  1        DP1L  = (DP1L  & ~(uword)0x003F) | 0x003F;    //set direction register
  308  1      
  309  1        ///  -----------------------------------------------------------------------
  310  1        ///  Configuration of the used CCU6 Channels Interrupts:
  311  1        ///  -----------------------------------------------------------------------
  312  1        ///  NodeI2 service request node configuration:
  313  1        ///  - NodeI2 interrupt priority level (ILVL) = 12
  314  1        ///  - NodeI2 interrupt group level (GLVL) = 3
  315  1        ///  - NodeI2 group priority extension (GPX) = 0
  316  1      
  317  1        CCU6_T12IC     =  0x0073;     
  318  1      
  319  1      
  320  1      
  321  1      
  322  1        CCU6_TCTR4     =  0x0002;      // load CCU6 timer control register 4
  323  1      
  324  1        // USER CODE BEGIN (Init,3)
  325  1      
  326  1        // USER CODE END
  327  1      
  328  1      } //  End of function CCU6_vInit
  329         
  330         
  331         //****************************************************************************
  332         // @Function      void CCU6_viNodeI2(void) 
  333         //
  334         //----------------------------------------------------------------------------
  335         // @Description   This is the interrupt service routine for the CCU6 node I2. 
  336         //                If the content of the corresponding compare timer 
  337         //                (configurable) equals the content of the capture/compare 
  338         //                register or if a capture event occurs at the associated 
  339         //                port pin, the interrupt request flag is set and an 
  340         //                interrupt is triggered (only if enabled).
  341         //                Please note that you have to add application specific code 
  342         //                to this function.
  343         //
  344         //----------------------------------------------------------------------------
  345         // @Returnvalue   None
  346         //
  347         //----------------------------------------------------------------------------
  348         // @Parameters    None
  349         //
  350         //----------------------------------------------------------------------------
  351         // @Date          2006-8-11
  352         //
  353         //****************************************************************************
  354         
  355         // USER CODE BEGIN (NodeI2,1)
  356         
  357         // USER CODE END
  358         
  359         void CCU6_viNodeI2(void) interrupt CCU6_NodeI2_INT
  360         {
  361  1        // USER CODE BEGIN (NodeI2,2)
  362  1        char Sector;
  363  1        // USER CODE END
  364  1      
  365  1        if(CCU6_IS & 0x0080)  // if CCU6_IS_T12PM
C166 COMPILER V6.02, CCU6                                                                  08/11/2006 11:28:57 PAGE 7   

  366  1        {
  367  2          // timer T12 period match detection
  368  2      
  369  2          // USER CODE BEGIN (NodeI2,19)
  370  2      
  371  2              StatorCurrentQ15.real = cos_table[angle];
  372  2              StatorCurrentQ15.imag = sin_table[angle];
  373  2              CCU6_T12PR     =  TPWM;      // load CCU6 T12 period register
  374  2              SVM(&StatorCurrentQ15,&Sector);
  375  2          // USER CODE END
  376  2      
  377  2          CCU6_ISR = 0x0080;  // clear flag CCU6_IS_T12PM
  378  2        }
  379  1      
  380  1      
  381  1      } //  End of function CCU6_viNodeI2
  382         
  383         
  384         
  385         
  386         // USER CODE BEGIN (CCU6_General,10)
  387         
  388         // USER CODE END
  389         


MODULE INFORMATION:   INITIALIZED  UNINITIALIZED
  CODE SIZE        =         306     --------
  NEAR-CONST SIZE  =    --------     --------
  FAR-CONST SIZE   =    --------     --------
  HUGE-CONST SIZE  =    --------     --------
  XHUGE-CONST SIZE =    --------     --------
  NEAR-DATA SIZE   =           6     --------
  FAR-DATA SIZE    =    --------     --------
  XHUGE-DATA SIZE  =    --------     --------
  IDATA-DATA SIZE  =    --------     --------
  SDATA-DATA SIZE  =    --------     --------
  BDATA-DATA SIZE  =    --------     --------
  HUGE-DATA SIZE   =    --------     --------
  BIT SIZE         =    --------     --------
  INIT'L SIZE      =    --------     --------
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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