新聞中心

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

        MSP430F5529 (八)實時時鐘RTC

        作者: 時間:2016-11-28 來源:網絡 收藏
        (4). 如何關閉計數器。
        為了簡單一點,把所有HOLD位都置位,則可以保證在任何情況下都可以關閉32位計數器。
        注意:對計數值寄存器寫時,立即生效。
        讀時,如果該時鐘與CPU時鐘不同步,則需要暫停計數器來讀數。或者通過多次讀取,來軟件判斷哪個是正確值。
        8.3.2 日歷模式
        當RTCMODE置位的時候,日歷模式就被選中了。在日歷模式中,實時時鐘模塊可選擇以BCD碼或者是十六進制提供秒、分、小時、星期、日期、月份和年份。日歷會自動計算是否是閏年,這個算法可以精確到1901年到2099年。
        (1). 時鐘和預分頻。
        RT0PS必須源于ACLK,ACLK必須是32768Hz,。 RT0PS會自動進行256分頻,然后其輸出再接RT1PS,RT1PS在被自動128分頻,最后提供的時鐘信號就是間隔一秒了。從計數器模式切換到日歷模式時,會將秒、分、小時、星期、年份全部置清零,會將日期和月份全部置1。另外,RT0PS和RT1PS也會被清零。(這里把這些狀態暫定義為默認復位狀態)
        (2). 日歷寄存器編碼格式。
        當RTCBCD=1時,日歷寄存器就會被選為BCD碼格式。必須在時間設置之前選擇好格式。改變RTCBCD的狀態會使進入默認復位狀態。
        在日歷模式下,RT0SSEL、RT1SSEL、RT0PSDIV、RT1PSDIV、RT0PSHOLD、RT1PSHOLD和RTCSSEL 位都可以被忽略。置位RTCHOLD則會停止實時計數器、分頻計數器和RT0PS、RT1PS。
        (3). 靈活的鬧鐘
        用戶可編程鬧鐘功能只有在日歷模式運行的時候才有效。
        每一個鬧鐘寄存器都包括一個鬧鐘使能位,AE可用來使能每一個鬧鐘寄存器。通過設置各式各樣鬧鐘寄存器的AE位,可以生成多種鬧鐘。
        比如說,一個用戶需要在每一小時的15分鐘(也就是00:15:00、01:15:00、02:15:00等等時刻)進行一次鬧鐘。這只要將RTCAMIN設置成15即可實現上述功能要求。通過置位RTCAMIN的AE位和清零鬧鐘寄存器的所有其它AE位,就會使能鬧鐘。正常工作時,對應的鬧鐘標志位RTCCIFG就會在00:14:59到00:15:00、01:14:59到01:15:00、02:14:59到02:15:00等等時刻被置位。
        注意:寫時間時,請務必保證格式正確,否則會出現無法預知的錯誤;
        此外,修改鬧鐘時間的時候,為了避免錯誤,請先清RTCAIE、RTCAIFG、AE位來暫停鬧鐘功能。
        8.3.3讀寫日歷模式下的RTC寄存器
        因為系統時鐘實際上是和實時時鐘的時鐘源是異步的,因此在進入實時時鐘寄存器的時候要格外小心。
        在日歷模式下,實時時鐘寄存器每秒鐘更新一次。為了防止在更新的時候讀取實時時鐘數據而造成錯誤數據的讀取,系統設立了一個禁止讀取的區域。每次RTC寄存器更新的那一剎那,左右1/256s被劃為禁止讀寫的區域。RTCRDY位用來指示這個時間區域。RTCRDY置0時,表明處于這一區域;置1時表明在這一區域之外,可以發生讀寫。
        一個簡單而安全讀取實時時鐘寄存器的方法是利用RTCRDYIFG中斷標志位。設置RTCRDYIE使能RTCRDYIFG中斷。一旦中斷使能,在RTCRDY位上升沿的時候將會產生中斷,致使RTCRDYIFG被置位。這樣,我們幾乎有一秒鐘的安全時間去讀寫任一個寄存器。當中斷得到響應的時候,RTCRDYIFG會自動復位,當然也可以軟件復位。
        8.3.4RTC中斷表
        (1). 每一個中斷標志都配有相應的中斷使能。
        (2). 請注意:RTCTE定義的時間事件(計時模式和日歷模式不同)
        (3). 對于RT0PSIFG和RT1PSIFG標志位,舉一個例子:
        通過RT0IP位,可以選擇地讓RT0PSIFG位用來生成間接中斷。在日歷模式下,RT0PS的時鐘源是32768Hz的ACLK,所以通過RT0IP控制中斷間隔可以產生16384Hz、8192Hz、4096Hz、2048Hz、1024Hz、512Hz、256Hz和128Hz的時間間隔。設置RT0PSIE位可以使能中斷。
        8.3.5RTC校準
        (1). 把P2.6設定為輸出狀態,并聲明有特殊功能;
        P2.6為RTCCLK的輸出引腳
        (2). 通過設置RTCCTL3寄存器中的RTCCALF來設置P2.6輸出信號的頻率;
        (3). 精確測量該頻率,然后計算誤差;
        (4). 最后設置RTCCTL2寄存器,來調節頻率增高或降低多少。
        PPM表示百萬分之一所輸出的頻率;
        注意:校準設置發生改變時,在RTCCLK引腳觀察512Hz和256Hz的輸出頻率是不會有影響的。而校準發生改變時,1Hz的輸出頻率是有影響的。
        上一頁 1 2 3 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 新余市| 甘孜县| 文化| 建始县| 平昌县| 梓潼县| 宜兴市| 琼结县| 根河市| 南木林县| 大名县| 全椒县| 应城市| 阳西县| 察雅县| 于田县| 建昌县| 阿城市| 新宁县| 卫辉市| 昭通市| 潜山县| 桓台县| 宁海县| 古田县| 南宫市| 东阿县| 社旗县| 泊头市| 申扎县| 兴文县| 兴隆县| 铜梁县| 西峡县| 博湖县| 五峰| 扬中市| 麟游县| 北辰区| 溧水县| 马尔康县|