OKI单片机——ML610Q4XX系统时钟切换
系统时钟可以选择:
32K 低速时钟
32K×2 低速时钟
2M 高速时钟1/1,1/2,1/4,1/8分频
500K 高速时钟1/1,1/2,1/4,1/8分频
可以选择时钟输出
P20输出LSCLK (32.768K);
P21输出2M高速时钟1/1,1/2,1/4,1/8分频或500K高速时钟1/1,1/2,1/4,1/8分频;
32K×2好像不能输出。
1.低速系统时钟
/***********************************************/
* @brief 配置系统时钟为低速时钟
* @details
/***********************************************/
void START_LSCLK(SYSCLKSelected_TypeDef Selected)
{
ENMLT = Selected;
SYSCLK = 0; //system CLK is low speed CLK
ENOSC = 0; //disable high speed CLK
}
2.高速系统时钟
/***********************************************/
* @brief 配置系统时钟为高速时钟
* @details
/***********************************************/
void START_HSCLK(SYSCLKSelected_TypeDef Selected,SYSCLKDiv_TypeDef Factor)
{
OSCM2 = Selected; //只能在高速时钟停止的时候写
FCON0 &= ~0X03;
FCON0 |= Factor;//分频系数
ENOSC = 1; //Enables high-speed oscillation
ENMLT = 0; //disable 2*low speed CLK
SYSCLK = 1; //system CLK is HSCLK
}
注意,代码里没有加延时。实际切换到高频时钟,是要延时等待时钟稳定的。