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)