看文檔MC9S08DZ60,系統時鐘分配圖如下:
上電覆位默認進入時鐘模式爲FEI
如果不進行時鐘配置,假定內部爲32K,BDIV復位默認爲01,那麼MCG主輸出頻率MCGOUT=32K/2*1024≈16M,也就是說復位默認MCG模塊主輸出頻率約16M,總線時鐘約8M。
時鐘的切換:
如下爲初始化爲外部時鐘模式(FBE):
/*************************************************
// 外部晶振,MCGOUT = fosc,BUSCLK = fosc/2
**************************************************/
void ClockInit(void)
{
MCGC2 = 0x36; //選擇外部1M~16M高頻晶振,總線分頻率爲1
MCGC1 = 0xB8; // 選擇外部參考時鐘
MCGC3 = 0x00;
while(MCGSC_OSCINIT == 0); //等待外部參考時鐘穩定
while(MCGSC_IREFST); //等待外部參考時鐘被選定
while(MCGSC_CLKST != 2); //等待時鐘模式狀態確認
}