void init_pll(void)
{
CRGINT = 0; //关中断
CLKSEL_PLLSEL = 0; //在未初始化PLL前不使用PLL的输出作为CPU时钟
#if(BUS_CLOCK == 40000000)
SYNR = 4;
#elif(BUS_CLOCK == 32000000)
SYNR = 7;
#elif(BUS_CLOCK == 24000000)
SYNR = 2;
#endif
REFDV = 1; //PLLCLK=2×OSCCLK×(SYNR+1)/(REFDV+1)=64MHz ,fbus=32M
PLLCTL_PLLON = 1; //开PLL
PLLCTL_AUTO = 1; //选取自动模式
while (CRGFLG_LOCK == 0); //等待PLL锁定频率
CLKSEL_PLLSEL = 1; //选择系统时钟由PLL产生,即总线时钟=PLLCLK/2
}
|