智能车制作

标题: 看了两个例子 和书上讲的不一样 不知道哪错了 求指教 [打印本页]

作者: 残月ㄨ天堂    时间: 2013-2-27 15:32
标题: 看了两个例子 和书上讲的不一样 不知道哪错了 求指教
void PLL_Init(void)
{
  CLKSEL=0x00; //48mhz                                 //Bus Clock=OSCCLK/2
  SYNR=0XC0 | 0X05;                                    //xx00 0101  SYNDIV=5
  REFDV=0XC0 | 0X03;                                   //yy00 0001  REFDIV=1
                                                       //Fvco=2*Fosc*(SYNDIV+1)/(REFDIV+1)=2*16*(5+1)/(1+1)=96MHz
                                                       //因为80<Fvco<=120 所以设置VCOFRQ[1:0]=11 (xx变为C)
                                                       //Fref=Fosc/(REFDIV+1)=16/(3+1)=4MHz
                                                       //因为2<Fref<=6 所以设置REFFRQ[1:0]=01 (yy变为8)
  PLLCTL_PLLON=1;                                      //启动IPLL
  POSTDIV=0X00;                                        //Fpll=Fvco=96MHz
  asm(nop);                                            //短暂延时,等待时钟频率稳定
  asm(nop);                                            
  while(0==CRGFLG_LOCK); //锁相环锁定                  //时钟频率已稳定,锁相环频率锁定
  CLKSEL_PLLSEL=1; //选定PLL时钟                       //Bus Clock=PLLCLK/2=96MHz/2=48MHz
}


这里的yy变为了C  是不是书上写错了 或者公式错了
目的是不是选定外部时钟 Bus Clock=PLLCLK/2=96MHz/2=48MHz

作者: 残月ㄨ天堂    时间: 2013-2-27 15:37
//yy00 0011  REFDIV=3 下面代入时没错
作者: 残月ㄨ天堂    时间: 2013-2-27 15:54
0100 yy变为4 还是不对
作者: 残月ㄨ天堂    时间: 2013-2-27 15:58
[attach]41220[/attach]

这个好像对的

作者: qurrer    时间: 2013-2-27 17:29
论坛里有可以参考
作者: 穆旦阿斗    时间: 2013-2-27 18:40
直接根据公式来呀!
作者: 残月ㄨ天堂    时间: 2013-2-28 17:24
穆旦阿斗 发表于 2013-2-27 18:40
直接根据公式来呀!

就是程序中的代码和公式算出来的不一样 所以才不确定




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2