智能车制作

标题: PLL_Init和SetBusCLK函数都是用来干嘛的?? [打印本页]

作者: yayay2010    时间: 2012-4-18 15:26
标题: PLL_Init和SetBusCLK函数都是用来干嘛的??
void PLL_Init(void)   //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)
{                 
  //锁相环时钟=2*16*(2+1)/(1+1)=48MHz
  REFDV=1;            
  //总线时钟=48/2=24MHz
  SYNR=2;
  while(!(CRGFLG&0x08));
  CLKSEL=0x80;
}
==========================================
void SetBusCLK_40M(void)
{   
    CLKSEL=0X00;    //disengage PLL to system
    PLLCTL_PLLON=1;   //turn on PLL
    SYNR =0xc0 | 0x04;                        
    REFDV=0xc0 | 0x01;  
    POSTDIV=0x00;       //pllclock=2*osc*(1+SYNR)/(1+REFDV)=80MHz;
    _asm(nop);          //BUS CLOCK=40M
    _asm(nop);
    while(!(CRGFLG_LOCK==1));   //when pll is steady ,then use it;
    CLKSEL_PLLSEL =1;          //engage PLL to system;  
}

       在一本电机控制的书里看到“锁相环测速方法”,锁相环是不是只是提高它自己的频率,与主程序频率无关?
还有就是线面的这个程序是不是用来提高主程序频率的?也就是说代码每执行一行需要多少时间就是靠它来决定的?


作者: 树叶    时间: 2012-5-5 12:47
锁相环时钟=2*16*(2+1)/(1+1)=48MHz
这里是这样的吗???




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