看文档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); //等待时钟模式状态确认
}