飞思卡尔MC9S12X Time输出比较

今天带着大家看下飞思卡尔MC9S12 Time模块的输出比较。
具体代码如下
/*************************************************************/
/*                      初始化锁相环                         */
/*                  使用外部晶振:16MHz                      */
/*                  设置总线频率:16MHz                      */
/*************************************************************/
void INIT_PLL(void)
{
    CPMUPROT=0x26;   //解除时钟配置保护    
   
    CPMUOSC_OSCE=1;    //使能外部晶振
    while(CPMUOSC_OSCPINS_EN==0);    //等待外部晶振使能
   
    CPMUCLKS &=(~0x40);
    CPMUCLKS |= 0x80;        //设置PLLCLK为系统时钟
    //PLLCLK=2×OSCCLK×(SYNDIV+1)/(REFDIV+1), fbus=PLLCLK/2
    CPMUSYNR=0x01;       //SYNDIV的值为1,
    CPMUREFDIV = 0x81;   //REFDIV的值为1
    CPMUPOSTDIV=0x00;
    CPMUPLL=0x10;
    while(CPMUFLG_LOCK==0); //等待PLLCLK锁定
   
    CPMUPROT=0x00;         //使能时钟配置保护
}

/************************************************************/
/*                    初始化TIM模块                         */
/************************************************************/
void initialize_TIM(void){
  TSCR1_TFFCA = 1;  // 定时器标志位快速清除
  TSCR1_TEN = 1;    // 定时器使能位. 1=允许定时器正常工作; 0=使主定时器不起作用(包括计数器)
  TIOS  = 0xff;      //指定所有通道为输出比较方式
  TCTL1 = 0x00;     // 后四个通道设置为定时器与输出引脚断开
  TCTL2 = 0x00;     // 前四个通道设置为定时器与输出引脚断开
  TIE   = 0x00;     // 禁止所有通道定时中断
  TSCR2 = 0x06;     // 预分频系数pr2-pr0:110,时钟周期为4us,
  TFLG1 = 0xff;     // 清除各IC/OC中断标志位
  TFLG2 = 0xff;     // 清除*定时器中断标志位
}
如需获取相关源码,请关注微信公众号“嵌入式软件开发学习圈”,
留言“飞思卡尔time”,即可免费获取相关学习资料。

微信公众号内有其他嵌入式学习经验分享。需要朋友们可以关注下微信公众号

如有相关嵌入式学习问题或疑问,欢迎在微信公众号留言.

飞思卡尔MC9S12X Time输出比较