【實時時鐘RTC】MSP430系統實時時鐘RTC學習日誌(完善中)
2012.1.11
讀取實時時鐘:
1、 RTCRDY 為0時,不能取讀取實時時鐘
RT0PS源於ACLK,為了實時時鐘日曆的正確的執行,ACLK必須是32768Hz。(易出錯)
定時:
一、每小時鬧一次:每一小時的15分鐘鬧一次:
1、將RTCAMIN設定成15;2、設定RTCAMIN的AE位和清除鬧鐘暫存器的其它所有AE位
3、AF會在:00:14:59到00:15:00、01:14:59到01:15:00、02:14:59到02:15:00等等時刻被置位。
二、在每天04:00:00時刻鬧:
1、RTCAHOUR位置位成4;2、設定RTCHOUR的AE位和復位鬧鐘暫存器的所有其它AE位
3、AF就會在03:59:59到04:00:00時刻被置位。
三、在每天06:30:00時刻鬧:
1、 將RTCAHOUR設定成6,將RTCAMIN 設定成30。
2、設定RTCAHOUR和RTCAMIN的AE位,即可使能鬧鐘
3、 AF位將會在每一個06:29:59到06:30:00的過渡時刻被置位
四、在每週二 06:30:00時刻鬧:
1、 RTCADOW位設定成2,RTCAHOUR設定成6,RTCAMIN將要被設定成30。
2、 設定RTCADOW、RTCAHOUR和RTCAMIN的AE位,鬧鐘即被使能。
3、 AF位將會在RTCDOW位從1 到2的過渡後和06:29:59到06:30:00的過渡時刻被置位。
五、在每月第五天的06:30:00時刻鬧:
1、 RTCADAY位將要設定成5,RTCAHOUR位將要被設定成6,RTCAMIN位將要被設定成30。
2、 設定RTCADAY位、RTCAHOUR位和RTCAMIN位的AE位,鬧鐘即被使能。
3、 AF位將要在06:29:59到06:30:00的過渡時刻和RTCADAY等於5的時刻被置位。
實時時鐘模式下的間隔時間中斷:
RTCCTL01 = RTCBCD+RTCMODE+RTCTEVIE+RTCAIE;
RTCMODE: 0:Counter 1: Calendar
置位RTCAIE 位就使能了時鐘中斷功能
置位RTCTEVIE 位就使能時間間隔中斷功能,置位RTCTEVIFG
RTCTEV:00 分鐘跳變
01 小時跳變
10 每天凌晨(00:00)
11 每天正午(12:00)
以上均在RTCMODE=1模式下。
//天中斷。置位RTCRDYIE 位會使能中斷,RTCRDY 位觸發實時時鐘中斷RTCRDYIFG
計數器模式中的實時時鐘中斷
時間間隔中斷:
實時時鐘中斷(RTCTEVIFG)
配置成8位、16位、24位或者32位中的一種溢位時引發一個觸發事件。觸發事件可由RTCTEV位進行選擇
置位RTCTEVIE位使能中斷
在計數器模式中,三個中斷源是可用的,其分別是RT0PSIFG、RT1PSIFG和RTCTEVIFG。RTCAIFG位和RTCRDYIFG位被清除。RTCRDYIE和RTCAIE位可以忽略。
1通過設定RT0IP位,可以選擇使RT0PSIFG位用來生成間歇中斷。
2在計數器模式,RT0PS位時鐘源,源自於ACLK或者SMCLK,也可以是基於ACLK或者SMCLK時鐘源的2分頻、4分頻、8分頻、16分頻、32分頻、64分頻、128分頻和256分頻作為時鐘源。
3設定RT0PSIE位可以使能中斷。
1通過設定RT1IP位,可以選擇地讓RT1PSIFG位用來生成間歇中斷。
2在計數器模式下,RT1PS位時鐘源,源於ACLK、SMCLK或者是RT0PS位的輸出,也可以是以上時鐘源的2分頻、4分頻、8分頻、16分頻、32 分頻、64分頻、128分頻和256分頻後產生新的時鐘源作為時鐘。
3設定RT1PSIE位可以使能中斷。
一個簡單而安全讀取實時時鐘暫存器的方法是利用RTCRDYIFG中斷標誌位。置位RTCRDYIE位使能
RTCRDYIFG中斷。一旦中斷使能,在RTCRDY位上升沿的時候將會產生中斷,致使RTCRDYIFG被置位。在這
一點上,這一應用幾乎有完整的一秒鐘安全地去讀取任一個實時時鐘暫存器。這一同步的處理方式防止在時間
跳變的過程中讀取時間值。當中斷得到響應的時候,RTCRDYIFG會自動復位,也可以軟體復位。
在計數器模式下,RTCRDY位保持復位。可以不關心RTCRDYIE位,並且RTCRDYIFG維持復位。
資料:
http://www.jdzj.com/pic/Class347/Class410/20080804043437.html
設定RTC時間:
void main(void)
{
WDTCTL = WDTPW +
WDTHOLD;
// Stop Watchdog Timer
RTCCTL01 =
RTCBCD+RTCHOLD+RTCMODE+RTCTEVIE+RTCAIE;
// RTC enable, BCD mode,
// alarm every Minute,
// enable RTC interrupt
// Init time
RTCSEC =
0x00;
// Set Seconds
RTCMIN =
0x32;
// Set Minutes
RTCHOUR =
0x10;
// Set Hours
// Init date
RTCDOW =
0x03;
// Set DOW
RTCDAY =
0x30;
// Set Day
RTCMON =
0x04;
// Set Month
RTCYEAR =
0x2008;
// Set Year
RTCCTL01 &= ~RTCHOLD; // Enable RTC
P1DIR |= 0x01; // Set P1.0 to output direction
__bis_SR_register(LPM3_bits +
GIE); // Enter LPM3 w/
interrupt
}
讀取RTC時間:
//
//
//
//
讀取RTC時鐘
//
//
//
//
unsigned long GetTime(void)
{
int
hour,minute,second
;
unsigned long
time
相關文章
- Linux系統時鐘(System Clock)和硬體(Real Time Clock,簡稱RTC)時鐘Linux
- 【iCore3 雙核心板】例程十:RTC實時時鐘實驗——顯示日期和時間
- 【iCore4 雙核心板_ARM】例程十:RTC實時時鐘實驗——顯示時間和日期
- 【iCore1S 雙核心板_ARM】例程十一:RTC實時時鐘實驗——顯示時間和日期
- 實時時鐘、系統時鐘和主機伺服器時鐘的區別伺服器
- 【GMT43智慧液晶模組】例程九:RTC實驗——時鐘顯示
- 系統時鐘與硬體時鐘
- Linux 系統時鐘和硬體時鐘Linux
- Linux系統時間與RTC設定Linux
- 硬體時鐘與系統時鐘同步問題
- 10. 實時鐘系統設計
- Linux 硬體時鐘和系統時鐘 - hwclock介紹Linux
- Qt時鐘介面、數字時鐘(12小時制24小時制切換、修改系統時間)QT
- 分散式系統:向量時鐘分散式
- js年月日小時分鐘秒動態時鐘效果JS
- linux學習筆記之小談時鐘時間,使用者CPU時間,系統CPU時間 .Linux筆記
- ARM學習之時鐘體系結構
- Any to Any 實時變聲的實現與落地丨RTC Dev Meetupdev
- GPS北斗時鐘伺服器(衛星時鐘系統)讓高考時間更加精準伺服器
- 實時變化的時鐘效果程式碼例項
- 實時日誌分析系統的基本架構架構
- Kafka實戰-實時日誌統計流程Kafka
- CDN日誌實時分析
- 定時將系統時間更新在日誌檔案中
- 分散式系統2:分散式系統中的時鐘分散式
- CSS動畫篇之炫酷時鐘之時鐘牆CSS動畫
- 分散式系統:Lamport邏輯時鐘分散式LAMP
- win7系統時鐘使用秘籍Win7
- 多級時序系統:機器週期,時鐘週期
- 關於時鐘的設定 hwcolck ,主要解決系統時鐘和硬體時鐘不一致的問題(轉)
- Web實時日誌輸出檢視管理系統Web
- 時鐘——CSS 動畫CSS動畫
- NTP時鐘同步
- solaris同步時鐘
- 網頁時鐘網頁
- 論醫院架設NTP時鐘裝置(GPS北斗時鐘系統)重要性
- 北斗GPS衛星同步時鐘(NTP時鐘伺服器)在通訊系統中應用伺服器
- 海量併發低延時 RTC-CDN 系統架構設計(上)架構