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

📄 ccu6.lst

📁 xc164的捕获比较单元6的使用例程
💻 LST
📖 第 1 页 / 共 2 页
字号:
  213  1        ///  - T12 modulation for output COUT62 is enabled
  214  1        ///  - T13 modulation for output COUT62 is disabled
  215  1        ///  - the trap functionality of the pin COUT62 is enabled
  216  1        ///  - the compare output COUT62 drives passive level while CC62ST is '1'
  217  1        ///  - the passive level of the output COUT62 is '0'
  218  1        ///  - dead time generation is enabled
  219  1      
  220  1        ///  - generation interrupt on flag ICC62R is disabled
  221  1        ///  - generation interrupt on flag ICC62F is disabled
  222  1      
  223  1        CCU6_CC62SR    =  0x03E8;      // load CCU6 capture/compare shadow register 
  224  1                                       // for channel 2
  225  1      
  226  1        ///  -----------------------------------------------------------------------
  227  1        ///  Configuration of CCU6 Channel 3:
  228  1        ///  -----------------------------------------------------------------------
  229  1        ///  - alternate output function COUT63 for the PWM signal generated by T13 
  230  1        ///    is enabled
  231  1        ///  - the trap functionality of the pin COUT63 is disabled
  232  1        ///  - the compare output COUT63 drives passive level while CC63ST is '0'
  233  1        ///  - the passive level of the output COUT63 is '0'
  234  1        ///  - T13 output is not inverted
  235  1      
  236  1      
  237  1        CCU6_CC63SR    =  0x07D0;      // load CCU6 capture/compare shadow register 
  238  1                                       // for channel 3
  239  1      
  240  1      
  241  1        CCU6_T12DTC    =  0x0701;      // load CCU6 dead time control register for 
C166 COMPILER V6.02, CCU6                                                                  08/11/2006 09:36:17 PAGE 5   

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

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

  366  1        if(CCU6_IS & 0x0040)  // if CCU6_IS_T12OM
  367  1        {
  368  2          // timer T12 one match detection
  369  2      
  370  2          // USER CODE BEGIN (NodeI2,20)
  371  2      
  372  2          // USER CODE END
  373  2      
  374  2          CCU6_ISR = 0x0040;  // clear flag CCU6_IS_T12OM
  375  2        }
  376  1      
  377  1        if(CCU6_IS & 0x0080)  // if CCU6_IS_T12PM
  378  1        {
  379  2          // timer T12 period match detection
  380  2      
  381  2          // USER CODE BEGIN (NodeI2,19)
  382  2      
  383  2          // USER CODE END
  384  2      
  385  2          CCU6_ISR = 0x0080;  // clear flag CCU6_IS_T12PM
  386  2        }
  387  1      
  388  1        if(CCU6_IS & 0x0400)  // if CCU6_IS_TRPF
  389  1        {
  390  2          // trap detection
  391  2      
  392  2          // USER CODE BEGIN (NodeI2,17)
  393  2      
  394  2          // USER CODE END
  395  2      
  396  2          CCU6_ISR = 0x0400;  // clear flag CCU6_IS_TRPF
  397  2        }
  398  1      
  399  1      
  400  1      } //  End of function CCU6_viNodeI2
  401         
  402         
  403         
  404         
  405         // USER CODE BEGIN (CCU6_General,10)
  406         
  407         // USER CODE END
  408         


MODULE INFORMATION:   INITIALIZED  UNINITIALIZED
  CODE SIZE        =         242     --------
  NEAR-CONST SIZE  =    --------     --------
  FAR-CONST SIZE   =    --------     --------
  HUGE-CONST SIZE  =    --------     --------
  XHUGE-CONST SIZE =    --------     --------
  NEAR-DATA SIZE   =    --------     --------
  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 COMPILER V6.02, CCU6                                                                  08/11/2006 09:36:17 PAGE 8   


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

⌨️ 快捷键说明

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