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
}
|