
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)