Mc9s12单片机PWM模块为什么要初始化锁相环

2019-07-15 17:08发布

Mc9s12单片机PWM模块为什么要初始化锁相环?
如果有可能,可否解释一下下面程序
  初始化锁相环                         */
/*************************************************************/
void INIT_PLL(void)
{
    CLKSEL &= 0x7f;       //set OSCCLK as sysclk
    PLLCTL &= 0x8F;       //Disable PLL circuit
    CRGINT &= 0xDF;

    #if(BUS_CLOCK == 40000000)
      SYNR = 0x44;
    #elif(BUS_CLOCK == 32000000)
      SYNR = 0x43;     
    #elif(BUS_CLOCK == 24000000)
      SYNR = 0x42;
    #endif

    REFDV = 0x81;         //PLLCLK=2×OSCCLK×(SYNR+1)/(REFDV+1)=64MHz ,fbus=32M
    PLLCTL =PLLCTL|0x70;  //Enable PLL circuit
    asm NOP;
    asm NOP;
    while(!(CRGFLG&0x08)); //PLLCLK is Locked already
    CLKSEL |= 0x80;        //set PLLCLK as sysclk
}

/*************************************************************/
/*                        初始化PWM                          */
/*************************************************************/
void init_pwm(void)
{
  PWMCTL_CON01= 1;   //联结通道0,1为16位的PWM
  PWMPOL_PPOL1= 1;   //通道01的极性为高电平有效
  PWMPRCLK = 0x55;   //A时钟和B时钟的分频系数为32,频率为1MHz
  PWMSCLA  =   25;   //SA时钟频率为20KHz
  PWMCLK =0x02;      //通道01用SA时钟作为时钟源
  PWMPER01  = 200;   //通道01的周期为100Hz
  PWMDTY01  = 0;     //通道01的占空比为0%  
  PWME_PWME1 = 1;    //使能通道01
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
lee_st
1楼-- · 2019-07-15 22:12
锁相环pll是提供系统时钟的 最佳答案

评分

参与人数 1积分 +20 收起 理由 ElecFans处女座 + 20

查看全部评分

WEI_WEI
2楼-- · 2019-07-15 23:38
提供系统时钟
易求9
3楼-- · 2019-07-16 04:22
WEI_WEI 发表于 2016-11-10 21:18
提供系统时钟

谢谢解答,祝你天天开心呀
易求9
4楼-- · 2019-07-16 04:39
谢谢
lee_st
5楼-- · 2019-07-16 07:37
 精彩回答 2  元偷偷看……
白痴夏天
6楼-- · 2019-07-16 10:44
不错不错,学到了