<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

        LPC210X的實時時鐘操作程序

        作者:huqin   來源:本站原創   點擊數:  更新時間:2014年09月02日   【字體:

         

         
        /********************初始化實時時鐘*******************************************/
        void  RTCInit(void)
        {
          YEAR = 2011;        // 初化年
          MONTH = 12;        // 初化月
          DOM = 6;        // 初化日
          HOUR = 12;
          MIN = 59;
          SEC = 50;
        //如果用到星期,則在這里正確初始化:DOW =(值為0~6) 
         
          CIIR = 0x01;        // 設置秒值的增量產生一次中斷
          CCR = 0x11;        // 使用獨立振蕩器,啟動RTC. (0x01,0x10,0x13都不顯示)
        }
         
        void  SendTimeRtc(void)//取星期不對
        {
          U32  times;
          U8  bak;
          times = CTIME0;   // 讀取完整時鐘寄存器0
         
        /*
          bak = (times>>24)&0x07;  // 取得星期的值
          Send_BUF[2] = bak/10+'0';
          Send_BUF[3] = bak%10+'0';  
         // Send_BUF[4] = ':';
         
          DataDisp(bak/10,2,0);                 //顯示星期  為什么取的星期不對呢?
          Delay(4);
          DataDisp(bak%10,3,0);
          Delay(2);*/
          bak = (times>>8)&0x3F;  // 取得分的值
          Send_BUF[0] = bak/10+'0';
          Send_BUF[1] = bak%10+'0';  
          Send_BUF[2] = ':';
         
          DataDisp(bak/10,0,0);                 //顯示分鐘
          Delay(4);
          DataDisp(bak%10,1,1);
          Delay(2);
         
          bak = times&0x3F;   // 取得秒的值
          Send_BUF[3] = bak/10+'0';
          Send_BUF[4] = bak%10+'0';  
          Send_BUF[5] = '\n';
         
          DataDisp(bak/10,2,0);                 //顯示分鐘
          Delay(4);
          DataDisp(bak%10,3,0);
          Delay(2);
        }
        操作了半天,取的星期老是不對。最后搞明白了,原來在RTCInit()中沒有初始化時鐘。
        切記:如果要取星期,對星期的寄存器要初始化,然后ARM會自動計算某天的星期數據。
         
        關閉窗口
        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮