2015-03-20 11:25 发起
绿色字体是我加的注释,不知分析对否,请检查。
红色字体是疑问,请前辈指教。谢谢
do {
if(source) { //设置RC振荡器
CLKCON |= 0x40; //设置CLKCON:32kHz外部低速晶振 16MHz内部HFRC振荡器 对吗?
while(!HIGH_FREQUENCY_RC_OSC_STABLE); //问题1:这句作用?
SLEEP |= 0x04; //低速时钟状态 打开且稳定
}
else { //设置晶体振荡器,本程序执行此分支
SLEEP &= ~0x04; //两个振荡器都供电 当没有打开或者不稳定
while(!XOSC_STABLE); //等待晶振稳定
asm("NOP"); //问题2:这句作用?
CLKCON &= ~0x7F; //选择主时钟振荡器32MHz
问题3:应该是保留32kHz外部低速晶振(最高位),清除16MHz内部HFRC振荡器(次高位)??
SLEEP |= 0x04;
}
}while (0)