<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          S3C2440 RTC 裸機程序

          作者: 時間:2016-11-26 來源:網(wǎng)絡(luò) 收藏
          RTC(實時時鐘)單元可以在當(dāng)系統(tǒng)電源關(guān)閉后通過備用電池工作。RTC 可以通過使用STRB/LDRB ARM 操作發(fā)送8 位二-十進制交換碼(BCD)值數(shù)據(jù)給CPU。這些數(shù)據(jù)包括年、月、日、星期、時、分和秒的時間信息。
          RTC 單元工作在外部32.768kHz 晶振并且可以執(zhí)行鬧鐘功能。

          本文引用地址:http://www.ex-cimer.com/article/201611/321881.htm

          其特點概括為:

          1 時鐘數(shù)據(jù)采用BCD編碼 時鐘數(shù)據(jù)包括 秒 分 時 日 月 年 星期(能對閏年的年月日在自動處理)
          2 32.768K 的晶振提供時鐘輸入
          3 可以提供毫秒級的時鐘中斷 該中斷可用于作為嵌入式操作系統(tǒng)的內(nèi)核時鐘

          用其時鐘功能時 主要需要配置 實時時鐘控制寄存器(RTCCON)
          RTCCON 寄存器由4 位組成,如控制BCD 寄存器讀/寫使能的RTCEN、CLKSEL、CNTSEL 和測試用的
          CLKRST。
          RTCEN 位可以控制所有CPU 與RTC 之間的接口,因此在系統(tǒng)復(fù)位后在RTC 控制程序中必須設(shè)置為1 來使

          能數(shù)據(jù)的讀/寫。同樣的在掉電前,RTCEN 位應(yīng)該清除為0 來預(yù)防誤寫入RTC 寄存器中。

          RTC(Real-Time Clock):實時時鐘。它的主要作用就是提供穩(wěn)定的實時時鐘給后續(xù)電路用。主要功能有:時鐘,日歷,鬧鐘,周期性中斷輸出,32KHz時鐘輸出。系統(tǒng)掉電的情況下,利用后備電源使時鐘繼續(xù)運行,從而不會丟失時間信息。
          寄存器:
          RTCCON :控制寄存器
          TICNT:節(jié)拍時間計數(shù)器
          RTCALM:鬧鐘控制寄存器
          ALMSEC:秒鬧鐘寄存器
          ALMMIN:分鬧鐘寄存器
          ALMHOUR:小時鬧鐘寄存器
          ALMDATE:日鬧鐘寄存器
          ALMMON:月鬧鐘寄存器
          ALMYEAR:年鬧鐘寄存器
          BCDSEC :秒寄存器
          BCDMIN:分寄存器
          BCDHOUR:時寄存器
          BCDDAY:星期寄存器
          BCDDATE:日寄存器
          BCDMON:月寄存器
          BCDYEAR:年寄存器

          #defineGLOBAL_CLK1
          #include "def.h"
          #include "option.h"
          #include "2440addr.h"
          #include "2440lib.h"
          #include "2440slib.h"
          #include "mmu.h"


          typedef struct Date
          {
          U16 year;
          U8 month;
          U8 day;
          U8 week_day;
          U8 hour;
          U8 mintue;
          U8 second;
          }date;


          date now_time;


          void RTC_Setdate()
          {
          rRTCCON = 0x01;

          rBCDYEAR =0x13; //p_date->year;
          rBCDMON =0x07; //p_date->month;
          rBCDDATE =0x29; // p_date->day;
          rBCDDAY =0x2; // p_date->week_day;
          rBCDHOUR =0x10; // p_date->hour;
          rBCDMIN =0x48; //p_date->mintue;
          rBCDSEC =0x00; //p_date->second;

          rRTCCON = 0x00;
          }



          void RTC_Read(date *p_date)
          {
          rRTCCON = 0x01;

          p_date->year = rBCDYEAR +0x2000 ;
          p_date->month = rBCDMON ;
          p_date->day = rBCDDATE ;
          p_date->week_day = rBCDDAY;
          p_date->hour = rBCDHOUR ;
          p_date->mintue =rBCDMIN ;
          p_date->second = rBCDSEC ;

          rRTCCON = 0x00;
          }


          void delay(int times)
          {
          int i,j;
          for(i = 0;i < times; i++)
          for(j = 0; j < times; j++);
          }


          int Main()
          {
          char *week[7] = {"SUN","MON","TUES","WED","THURS","FRI","SAT"};
          MMU_Init();
          // RTC_Setdate();
          while(1)
          {
          RTC_Read(&now_time);

          Uart_Printf("NOWTIME: x-x-x %s x:x:x",now_time.year,
          now_time.month,
          now_time.day,
          week[now_time.week_day-1],
          now_time.hour,
          now_time.mintue,
          now_time.second);
          delay(10000);
          }
          }



          關(guān)鍵詞: S3C2440RTC裸機程

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();