色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 >
實時時鐘RTC
時間:2018-08-16作者:華清遠(yuǎn)見

實時時鐘的縮寫是RTC(Real_Time Clock)。RTC 是集成電路,通常稱為時鐘芯片。RTC通常情況下需要外接32.768kHz晶體,匹配電容、備份電源等元件。RTC除了I/O口的定位不同,還有功能上的區(qū)別,比如與MCU的接口,現(xiàn)在常用的是I2C接口(距離短,可以與其他器件共用)還有RAM的數(shù)量、靜態(tài)功耗大小、中斷的數(shù)量,特別是精度的區(qū)別。 RTC的精度可以說與溫度有很大的關(guān)系,而溫度會影響晶體的頻率。本章介紹的是集成在芯片內(nèi)部的時鐘功能模塊。

1 RTC介紹

在一個嵌入式系統(tǒng)中,通常采用RTC 來提供可靠的系統(tǒng)時間,包括時分秒和年月日等,而且要求在系統(tǒng)處于關(guān)機(jī)狀態(tài)下它也能夠正常工作(通常采用后備電池供電)。它的外圍也不需要太多的輔助電路,典型的就是只需要一個高精度的32.768kHz晶體和電阻電容等,如圖1所示。



圖12-1 RTC外接電路

2 RTC控制器

實時時鐘(RTC)單元可以通過備用電池供電,因此,即使系統(tǒng)電源關(guān)閉,它也可以繼續(xù)工作。RTC 可以通過STRB/LDRB 指令將8 位BCD 碼數(shù)據(jù)送至CPU。這些BCD 數(shù)據(jù)包括秒、分、時、日期、星期、月和年。RTC 單元通過一個外部的32.768kHz晶振提供時鐘。RTC具有定時報警的功能,如圖2所示。RTC 控制器功能說明:


圖12-2 RTC控制器

● 時鐘數(shù)據(jù)采用BCD 編碼。
        ● 能夠?qū)﹂c年的年月日進(jìn)行自動處理。
        ● 具有告警功能,當(dāng)系統(tǒng)處于關(guān)機(jī)狀態(tài)時,能產(chǎn)生告警中斷。
        ● 具有獨(dú)立的電源輸入。
        ● 提供毫秒級時鐘中斷,該中斷可用于作為嵌入式操作系統(tǒng)的內(nèi)核時鐘。

3 RTC控制器寄存器詳解

如表3所示為相關(guān)寄存器描述。

表3 RTC控制寄存器

RTCCON 描述 復(fù)位值
保留 [31:9] 保留 0
TICEN [8] 嘀嗒計時器
0 = 禁止
1 = 使能
0
TICCKSEL [7:4] 嘀嗒計時器子時鐘源選擇
4'b0000 = 32768 Hz       4'b0001 = 16384 Hz
4'b0010 = 8192 Hz        4'b0011 = 4096 Hz
4'b0100 = 2048 Hz        4'b0101 =1024 Hz
4'b0110 =512 Hz          4'b0111 =256 Hz
4'b1000 =128 Hz          4'b1001 =64 Hz
4'b1010 =32 Hz           4'b1011 =16 Hz
4'b1100 =8 Hz            4'b1101 =4 Hz
4'b1110 =2 Hz            4'b1111 =1 Hz
4'b0000
CLKRST [3] RTC時鐘計數(shù)復(fù)位
0 = 不復(fù)位
1 = 復(fù)位
0
CNTSEL [2] BCD計數(shù)選擇
0 = 分配 BCD 計數(shù)
1 = 保留
0
CLKSEL [1] BCD 時鐘選擇
0 = XTAL 1/2 divided clock
1 = 保留(XTAL 供頻)
0
RTCEN [0] RTC控制使能
0 = 禁止
1 = 使能
0

如表4所示為BCD秒寄存器描述。

表4 BCDSEC寄存器

BCDSEC 描述 復(fù)位值
保留 [31:7] 保留 --
SECDATA [6:4] BCD 值 0~5 --
[3:0] 0~9 --

如表5所示為BCD分鐘寄存器描述。

表5 BCDMIN寄存器

BCDMIN 描述 復(fù)位值
保留 [31:7] 保留 --
MINDATA [6:4] BCD 值 0~5 --
[3:0] 0~9 --

如表6所示為BCD小時寄存器描述。

表6 BCDHOUR寄存器

BCDHOUR 描述 復(fù)位值
保留 [31:7] 保留 --
HOURDATA [5:4] BCD 值 0~5 --
[3:0] 0~9 --

如表7所示為BCD日期寄存器描述。

表7 BCDDATE寄存器

BCDDATE 描述 復(fù)位值
保留 [31:7] 保留 --
DATEDATA [5:4] BCD 值 0~3 --
[3:0] 0~9 --

如表8所示為BCD星期寄存器描述。

表8 BCDDAY寄存器

BCDDAY 描述 復(fù)位值
保留 [31:3] 保留 --
DAYDATA [2:0] 1~7 --

如表9所示為BCD月寄存器描述。

表9 BCDMON寄存器

BCDMON 描述 復(fù)位值
保留 [31:5] 保留 --
MONDATA [4] BCD 值 0~1 --
  [3:0] 0~9 --

如表10所示為BCD年寄存器描述。

表10 BCDYEAR寄存器

BCDYEAR 描述 復(fù)位值
保留 [31:8] 保留 --
YEARDATA [7:4] BCD 值 0~9 --
[3:0] 0~9 --

4 RTC應(yīng)用示例

1.相關(guān)寄存器定義

typedef struct {

                        unsigned int BCDSEC;
                        unsigned int BCDMIN;
                        unsigned int BCDHOUR;
                        unsigned int BCDDATE;
                        unsigned int BCDDAY;
                        unsigned int BCDMON;
                        unsigned int BCDYEAR;
        }rtcbcd;
        #define RTCBCD (* (volatile rtcbcd *)0xEA300070)

2.主程序

下面的代碼實現(xiàn)了一個將RTC的年月日、時分秒讀出的功能,可以將注釋掉的代碼打開來復(fù)位值。

void rtc_init(void)
        {
                RTCCON = 0X01; //使能RTC控制些功能
                RTCBCD.BCDSEC = 0x0; // 2012 03 15, 12:59:00.以BCD碼格式寫入
                RTCBCD.BCDMIN = 0x59; 
                RTCBCD.BCDHOUR =0x12;
   &nbsnbsp;            RTCBCD.BCDDATE = 0x15;
                RTCBCD.BCDMON = 0x03;
                RTCBCD.BCDYEAR = 0x12;
                RTCCON = 0; //關(guān)閉RTC控制些功能
        }
        int main()
        {
                unsigned int i = 0;
                uart0_init();
                rtc_init(); //初始化時間
                while(1) //循環(huán)打印時間
                {
                        printf("hour %x : min %x : sec %x\r",RTCBCD.BCDHOUR,RTCBCD.BCDMIN,RTCBCD.BCDSEC);
                        for(i=0;i<10000000;i++);
                }
                return 0;
        }

2.實驗過程及現(xiàn)象:

編譯生成的.elf文件,硬件接線。并連接好FS_JTAG仿真器套件。將程序編譯后獲得.elf文件,將該文件通過仿真器下載并運(yùn)行在目標(biāo)版上,終端打印信息如下所示。

hour 12 : min 59 : sec 17
        hour 12 : min 59 : sec 18
        hour 12 : min 59 : sec 19
        hour 12 : min 59 : sec 20


發(fā)表評論

全國咨詢電話:400-611-6270,雙休日及節(jié)假日請致電值班手機(jī):15010390966

在線咨詢: 曹老師QQ(3337544669), 徐老師QQ(1462495461), 劉老師 QQ(3108687497)

企業(yè)培訓(xùn)洽談專線:010-82600901,院校合作洽談專線:010-82600350,在線咨詢:QQ(248856300)

Copyright 2004-2018 華清遠(yuǎn)見教育科技集團(tuán) 版權(quán)所有 ,京ICP備16055225號,京公海網(wǎng)安備11010802025203號

主站蜘蛛池模板: 亚洲国产精品线路久久 | 亚洲精品永久在线观看 | 中文字幕中文有码在线 | 老师穿超短包臀裙办公室爆乳 | 国产精品热久久无码av | 亚洲色欲www综合网 一千部毛片免费观看在线观看 | 欧美kkkk7777免费看 | 精品久久人人爽天天玩人人妻 | 色天使久久综合网天天 | 特级毛片A级毛片免费播放 在线免费看污 | 欧美熟妇另类久久久久久多毛 | 人妻少妇看A偷人无码精品 国产精品青草久久久久婷婷 | 又大又粗欧美黑人A片 | 欧美激情一区二区三区久久 | 国产精品久久久久永久免费看 | 国产精品无套内射迪丽热巴 | 久久久三级 | 少妇人妻好深太紧了A | 偷偷做久久久久网站 | 亚洲综合激情另类专区 | 嫩草影院在线观看网站 | 无码视频一区二区三区在线观看 | 欧美性狂猛xxxxxbbbbb | 精品久久久无码人妻字幂 | AV无码中文字幕不卡一区二区三区 | 91精品久久久久久9s密挑 | 中文字幕九色自拍 | 伊人久久大香线蕉av最新 | 久久精品手机观看 | 成人免费A级毛片无码 | 国产超碰无码最新上传 | 玩弄漂亮少妇高潮大叫 | 麻豆私人影院 | 在线精品视频一区二区三四 | 日本日本乱码伦视频在线观看 | 玩弄丰满少妇视频 | 精品麻豆剧传媒av国产 | 色拍拍在线精品视频 | www.国产99 | 少妇被爽到高潮动态图 | 欧洲美熟女乱又伦AV |