初学 很多都不懂,请指教。

3816

浏览

0

绿色字体是我加的注释,不知分析对否,请检查。

红色字体是疑问,请前辈指教。谢谢

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)


添加评论
疯PK

疯PK

2015-03-20 11:25 发起

1个回复

按票数排序 按时间排序

0

添加评论 · 举报
完善自己

完善自己

2015-03-31 14:50 回答

撰写回复

本帖来自

物联网

物联网

6468人已加入

分享到