新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > MSP430F5529 (八)實時時鐘RTC

        MSP430F5529 (八)實時時鐘RTC

        作者: 時間:2016-11-28 來源:網絡 收藏
        0:選擇2進制或者十六進制
        1:選擇BCD碼
        RTCHOLD:實時時鐘保持位
        0:實時時鐘(32位計數器或者是日歷模式)正在運作
        1:計數器模式(RTCMODE=0)),該位置1只會使32位計數器停止;在日歷模式(RTCMODE=1)日歷以及預分頻計數器會被停止。RT0PS和RT1PS、RT0PSHOLD和RT1PSHOLD位可以忽略。
        RTCMODE:RTC模式選擇。
        0:32位計數器模式
        1:日歷模式。在日歷模式和計數器模式之間的切換會重置實時時鐘;計數器模式切換到日歷模式會將秒、分、小時、星期和年清零,將日期和月份置1。實時時鐘寄存器需要后來被軟件設置。RT0PS和RT1PS也會被清零。
        RTCRDY:實時時鐘準備位
        0:實時時鐘值在轉換過渡(日歷模式)
        1:實時時鐘值可被安全讀取(日歷模式)。在計數器模式,RTCRDY保持清除。
        RTCSSEL:實時時鐘源選擇位。選擇時鐘源輸入到RTC/32計數器。在RTC日歷模式這兩位是不考慮的,其輸入默認是RT1PS的輸出。
        00ACLK
        01SMLK
        10從RT1PS輸出
        11從RT1PS輸出
        RTCTEV:RTC時間事件指示

        本文引用地址:http://www.104case.com/article/201611/322796.htm
        RTC模式
        RTCTEV的值
        內部中斷
        計數器模式
        00
        8位溢出
        01
        16位溢出
        10
        24位溢出
        11
        32位溢出
        日歷模式
        00
        分鐘改變
        01
        小時改變
        10
        午夜(00:00)
        11
        白天(12:00)

        RTCCTL2 實時時鐘控制寄存器2(rw-(0)表示讀寫為0)
        RTCCALS:RTC校準標志
        0:頻率調整下降
        1:頻率調整上升
        RTCCAL:RTC頻率校準位
        每個LSB位代表大約+4PPM(RTCCALS=1)或-2PPM(RTCCALS=0)調整頻率。
        RTCCTL3 實時時鐘控制寄存器3
        RTCCALF:RTC校準頻率校準測量時選擇頻率輸出到RTCCLK引腳(P2.6)上。相對應的端口必須配置為外圍模塊功能(即P2SEL=BIT6)。RTCCLK在計數模式不可用,此時保持為低且RTCCALF位的值不確定。
        00:沒有頻率輸出到RTCCLK引腳
        01:512HZ
        10:256HZ
        11:1HZ
        RTCPS0CTL 預分頻定時器0控制寄存器(16位寄存器)
        RT0SSEL:預分頻定時器0時鐘源選擇位。選擇時鐘源輸入到RT0PS計數器。在RTC日歷模式該位不用關心,因為RT0PS時鐘輸入自動設置到ACLK(32.768KHZ)。
        0:ACLK
        1:SMCLK
        RT0PSDIV:預分頻定時器0分頻,這些位控制RT0PS計數器的分頻。在RTC日歷模式對于RT0PS和RT1PS這些位是不用關心的,因為RT0PS時鐘輸出自動設置到256分頻。RT1PS時鐘輸出自動設置到128分頻。
        000-111,分別表示2、4、8、16、32、64、128、256分頻
        RT0PSHOLD:預分頻定時器0保持位。在RTC日歷模式這些位是不關心的。RTCHOLD置位時,RT0PS停止工作。
        RT0IP:預分頻器0中斷間隔。
        000-111,分別表示2、4、8、16、32、64、128、256分頻
        RT0PSIE:預分頻定時器0中斷允許
        0:中斷不允許
        1:中斷允許
        RT0PSIFG:預分頻定時器0中斷標志
        0:沒有定時事件發生
        1:有定時事件發生
        RTCPS1CTL預分頻定時器1控制寄存器(16位寄存器)
        RT1SSEL:預分頻定時器1時鐘源選擇位。選擇時鐘源輸入到RT1PS計數器。在RTC日歷模式該位不用關心,因為RT1PS時鐘輸入自動設置為RT0PS的輸出。
        00:ACLK
        01:SMCLK
        10:從RT0PS輸出
        11:從RT0PS輸出
        (其余項同RTCPS0CTL)
        上面的都為控制寄存器,操作比較復雜,下面講到的都是數值寄存器。
        RTCNT1:RTC計數寄存器1,計時器模式
        RTCNT2:RTC計數寄存器2,計數器模式
        RTCNT3:RTC計數寄存器3,計數器模式
        RTCNT4:RTC計數寄存器4,計數器模式
        RTCSEC:秒寄存器。BCD/BIN
        先說明一下BCD/BIN的意思(下面同理)
        前面提到可以控制日歷模式的數值寄存器中的數值用BCD碼或者二進制碼表示。以RTCSEC為例:
        當選作二進制模式時:(低6位就可以表示秒1-60)
        當選作BCD模式時:(低4位表示秒的各位0-9;4-6位表示秒的十位0-6,高位不用時默認為0)
        RTCMIN:分寄存器,BCD/BIN
        RTCHOUR:時寄存器,BCD/BIN
        RTCDOW:星期日數寄存器,因為只有1-7,所以無所謂BCD/BIN了
        RTCDAY:日寄存器,BCD/BIN
        RTCMON:月寄存器,BCD/BIN
        RTCYEARL:年低字節寄存器,個年位以及十年位,BCD/BIN
        RTCYEARH:年高字節寄存器,百年位以及千年位,BCD/BIN
        RTCAMIN:分鬧鈴寄存器,BCD/BIN
        RTCAHOUR:時鬧鈴寄存器,BCD/BIN
        RTCADOW:星期鬧鈴寄存器
        RTCADAY:日鬧鈴寄存器,BCD/BIN
        //上述4個鬧鐘寄存器的最高位都為使能位AE,置位時相應寄存器才有效
        RT0PS:預分頻定時器0計數值
        RT1PS:預分頻定時器1計數值
        RTCIV:中斷向量值寄存器(16位寄存器)
        8.3RTC的各種操作流程
        8.3.1計時器模式
        (1). RTCMODE位置0,進入32位計時器模式;
        從日歷模式切換到計數器模式會將計數值寄存器(RCTNT1,RCTNT2,RCTNT3,RCTNT4)和預換算計數器(RT0PS,RT1PS)全部清零
        (2). 選擇時鐘源,并設計二級分頻;
        計數器的時鐘可源于ACLK、SMCLK或者是RT1PS的輸出。當使用RT1PS的輸出作為計數源的時候,一定要先將RT0PS,RT1PS的HOLD位清零,使其可以正常工作,然后再分別配置二者的分頻數。
        再者,兩個預分頻器RT0PS和RT1PS也可以作為獨立的計數器來用(級聯成16位也是可以的)。通過RT0IP和RT1IP可以設置間隔。比如,選擇ACLK 32768HZ作為時鐘,間隔設置為256,也就是說每當計數器計到32768/256=128的整數倍時,該標志位就會置位。
        (3). 32位計數器是由4個8位計數器級聯而成,這能提供8位、16位、24位、32位溢出間隔。RTCTEV位選擇觸發哪一個溢出間隔,通過設置RTCTEVIE位,一個RTCTEV發生能夠觸發一個中斷。計數器RTCNT1到RTCNT4,每一個都可以單獨的訪問,并可能被寫入。

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 孟州市| 江城| 隆昌县| 阿坝| 永靖县| 中江县| 延庆县| 唐海县| 梓潼县| 宁蒗| 大安市| 永安市| 绵竹市| 聂拉木县| 平遥县| 石城县| 沅江市| 枝江市| 高青县| 兴宁市| 尤溪县| 盘锦市| 克什克腾旗| 田林县| 上犹县| 阿拉善左旗| 洛浦县| 贡觉县| 葫芦岛市| 新竹市| 上犹县| 舟曲县| 五河县| 延边| 邹平县| 盐池县| 方正县| 祁东县| 山西省| 徐州市| 汝州市|