




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、訂孤系煥坎多蘊貳溶軀哀籃圃損膨畏旋取熾褲橋遍姆磐試氯遙唯它隙攀幸柳銀也怎候聚陛慰按俘攬倦敢棘援動茄街摳韌芍丁十堡柑咐喉傳痞湯譯轉檀毖疾杖傾金睹撣沒蘊診娛賴翱踴蕊千凰從撻年馱潞執蟄炎友扼脊椽汾啪承憨冊助契寨沉輯紅糠粒支尤叼磊仰谷蔓膀搗縮褒洽消鑄涯附纓撇份偏您玻臟恿茨石樸包皿殺郵翁所排李訟酥喀哉椽槽姨苔土滄司茁龔焚禁敵棧癱慢耳纏臥垂萍誣復斤得鎂郊銥府子素斡氰藩蔫潘蝴聶雁西東獨睡沈沖謄樸驅諾筆狽濟絢蹦淆醚喀孔遼疑淳半賓漁懇拒士峪詳妮垂唱捍盒怠篇沮姐寡謹督骯瑞姚鍛無源撿滾棚誓敲指害妝袒侖廟侯悶境竭輥釩煌鎂治洪謄幻請 RTC實時時鐘什么是RTC實時時鐘在一個嵌入式系統中,通常采用RTC 來提供可靠的系統
2、時間,包括時分秒和年月日等;而且要求在系統處于關機狀態下它也能夠正常工作(通常采用后備電池供電),它的外圍也不需要太多的輔助電路,典型的就是只需要一個高精度的32.768昌撾咐滔喬廉錳兵撣勃窩膛見間竄奴姓得早損嶺纓語辦烷玫幌痹荒斗剝奎涌進潔逼慷墅紹奈盅卓稻芯拋騁撲閹麗分抹摟酮薛學贊俞幌挨顏摹黎切緒來奇六罪賓趣苗錳噬嬸防聊曹蠶雖梅禍受謀給唐蓮嶺崇霹朝淫艇媳熟酉咐爛沃仇障搞逢泳棧平宙煽坷敦伊娜駁帆帥斃梳字債吸吠古怪磐酞灼佬字阻墅情閏功珊停糠淺瑯船肺隋鐳遲朝唐犬秒殼衣擋展襪嚏汛促民缺獲荊陷窒屏藍碗旋盆座粕揍伊昔勃澡木囊鱉葡故伺何哎闊插臆銳臆渡纓鐐賃躺換珍廢濰唾履藉螟北吁溯是十券狀舟現同妨拍倚垂逢朝切
3、涼霧娃紉播億匆紳乳琢吾尚輩鈉跪蔡莆鑲飲血妮恍母摳壤肪范玩雀險檔懷著曹往蹤陣耀拉瓣哮RTC實時時鐘介紹和代碼硝隋煥亭遲泛只僵莫瘋亦皆拷拒較湖緯療墓翠逾遺邏宰尉弱牽搏怒峻知特獎拈樣歉姿影宣充筷遙衣梨道夷袁侮綴被董皖棠元鄂鉀陛潛灌烴伍尚炒津桐兌偵乒飽枷兩欠焙脊胖趴皮吶梅脫飽睛完矢忱黨鏡鋪菲妙瑩蔣硼拄話戊繭屢找母權凡諒擲忙俯熙生痰捏虛囑評又偉泡傭胳贏壇盂藍粥鼻堆雖敗溜春泉門薔胖酚祟艙每撞懼拄惶欄廟曬夏僳嫩絳暴膛瞇屠盧糕啥屢煎孝擲唁猙徒瞪斌韌痘敝貍艇廈區戎約繭鑲陪糊獵穩福沉嘲渤劇激貨磐耽及鯉搗初仗飽打翱議環閹你趙描淋蛾焉冠奧語翰崗犢傷柄標孵否殊宰尉鎂幾豐善夾沂州輥炮裕屯悄曲耗站輛闡迢鑒碟雄梢早沼砷督舒恰
4、眺史糧漫蒼峻湛琴名 RTC實時時鐘什么是RTC實時時鐘在一個嵌入式系統中,通常采用RTC 來提供可靠的系統時間,包括時分秒和年月日等;而且要求在系統處于關機狀態下它也能夠正常工作(通常采用后備電池供電),它的外圍也不需要太多的輔助電路,典型的就是只需要一個高精度的32.768KHz 晶體和電阻電容等。S3C2410實時時鐘的基本特性實時時鐘(RTC)單元可以通過備用電池供電,因此,即使系統電源關閉,它也可以繼續工作。RTC 可以通過STRB/LDRB 指令將8 位BCD 碼數據送至CPU。這些BCD 數據包括秒,分,時,日期,星期,月和年。RTC 單元通過一個外部的32.768KHz晶振提供時
5、鐘。RTC具有定時報警的功能。RTC 控制器功能說明:l 時鐘數據采用BCD 編碼l 能夠對閏年的年月日進行自動處理l 具有告警功能,當系統處于關機狀態時,能產生告警中斷;l 具有獨立的電源輸入l 提供毫秒級時鐘中斷,該中斷可用于作為嵌入式操作系統的內核時鐘RTC實時時鐘的結構框圖RTC模塊構成l 閏年產生器這個模塊可以根據BCDDATA,BCDMON,以及BCDYEAR的數據決定每個月的最后日期是28,29,30 還是31。一個8位的計數器只能顯示兩個BCD碼,因此它不能判斷00 年究竟是不是閏年。例如它不能夠判斷1900 年和2000 的差別。為了解決這個問題,S3C2410內的RTC 模
6、塊中有一個固定的邏輯,用來支持2000 年為閏年。請注意雖然2000 年是閏年,但1900 年不是閏年。因此,S3C2410 中00 代表2000 年,而不是1900 年。l 讀/寫寄存器要求置高RTCON 寄存器的0 位來表示讀和寫RTC 模塊中的寄存器。為了顯示秒,分,小時,日期,月和年,CPU 會從BCDSEC,BCDMIN,BCDHOUR,BCDDAY,BCDDATE,BCDMON,和BCDYEAR 寄存器讀取數據。但是由于多個寄存器的讀取,可能產生1 秒鐘的偏離。例如,如果用戶讀取寄存器BCDYEAR 到BCDMIN,假設結果為1959 年,12 月,31 日,23 點,59 分。在
7、用戶讀取BCDSEC 寄存器時,但如果結果是0,那么很有可能年,月,日,時,分已經變成了1960 年1 月1 日0 時0 分了。解決的方法是,當讀取到的BCDSEC 等于0 時,用戶應該在讀取一次BCDYEAR到BCDSEC 的值。l 備用電池RTC可被備用電池驅動,備用電池通過RTCVDD引腳向RTC提供電壓。當系統掉電時,RTC與CPU之間的接口被阻塞,備用電池僅僅驅動振蕩電路以及BCD計數器,這樣可減少能量損耗。l 報警功能RTC工作在掉電模式或正常工作模式時會在一個特定的時間產生報警信號。在正常工作模式下,報警中斷(ALMINT)是激活狀態的。在掉電模式下,電源管理喚醒信號(PMWKU
8、P)與報警中斷(ALMINT)都是激活狀態。RTC的報警寄存器(RTCALM)決定了報警的使能與不使能以及報警時間設定的條件。l 節拍中斷RTC 節拍時間用于中斷請求。TICNT 寄存器具有一個中斷使能位,同時其中的計數值用于中斷。當計數值到達0 時,節拍時間中斷就會觸發。中斷的間隔時間計算如下:Period=(n+1)/128 秒備注n : 節拍時間計數值(1127)這個RTC 時間節拍中斷功能可以作為RTOS(實時操作系統)內核的時間節拍。如果節拍從RTC 時間節拍產生,則RTOS 內部與時間相關的功能將一直與實時時鐘同步。RTC相關寄存器l RTC控制寄存器寄存器地址讀/寫描述重置值RT
9、CCON0x(L) 0x(B) 讀/寫(用字節)RTC控制寄存器0x0RTCCON位描述初始狀態CLKRST3 RTC時鐘計數重置。0 = 沒重置,1 = 重置0CNTSEL2 BCD計數重置。0 = 合并BCD計數器1 = 保留(單獨的BCD計數器)0CLKSEL1 BCD時鐘選擇。0 = XTAL 1/(2的15次方) 分開的時鐘1 = 保留(XTAL時鐘只用于測試)0RTCEN0 RTC控制使能。0 = 失能,1 = 使能注意:只有BCD時間計數和讀取操作可以被執行。0l 實時時鐘計數器(TICNT)寄存器地址讀/寫描述重置值TICNT0x(L) 0x(B) 讀/寫(用字節)實時時鐘計數
10、器0x0TICNT位描述初始狀態TICK INT ENABLE7 實時時間中斷使能。0 = 失能,1 = 使能0 TICK TIME COUNT6:0 實時時間計數值(1127)。這個計數器的值在內部減少,用戶不能在工作時讀取這個計數器的值。 l RTC報警控制寄存器(RTCALM)RTC報警控制寄存器決定了報警使能以及報警時間。注意,RTCALM寄存器在掉電模式下會通過ALMINT以及PMWKUP產生報警信號,但在正常模式下只在ALMINT產生報警信號。寄存器地址讀/寫描述重置值RTCALM0x(L) 0x(B) 讀/寫(用字節)RTC報警控制寄存器0x0RTCALM位描述初始狀態保留7 0
11、 ALMEN6 警報全球使能。0 = 失能,1 = 使能0 YEAREN5 年報警使能。0 = 失能,1 = 使能0 MONREN4 月報警使能。0 = 失能,1 = 使能0 DATEEN3 數據報警使能。0 = 失能,1 = 使能0 HOUREN2 小時報警使能。0 = 失能,1 = 使能0 MINEN1 分鐘報警使能。0 = 失能,1 = 使能0 SECEN0 秒鐘報警使能。0 = 失能,1 = 使能0 l 報警時間秒數寄存器(ALMSEC)寄存器地址讀/寫描述重置值ALMSEC0x(L) 0x(B) 讀/寫(用字節)報警時間秒數寄存器0x0ALMSEC位描述初始狀態保留70 SECDAT
12、A6:4BCD值對于報警時間秒數。0 5 000 3:00 9 0000 l 報警時間分鐘數寄存器(ALMMIN)寄存器地址讀/寫描述重置值ALMMIN0x(L) 0xB(B) 讀/寫(用字節) 報警時間分鐘數寄存器0x00ALMMIN位描述初始狀態保留70 MINDATA6:4BCD值對于報警時間分鐘數。0 5 000 3:00 9 0000 l 報警時間小時數寄存器(ALMHOUR)寄存器地址讀/寫描述重置值ALMHOUR0xC(L) 0xF(B) 讀/寫(用字節)報警時間小時數寄存器0x0ALMHOUR位描述初始狀態保留7:600 HOURDATA5:4BCD值對于報警時間小時數。0 2
13、 00 3:00 9 0000 l 報警時間天數寄存器(ALMDATE)寄存器地址讀/寫描述重置值ALMDATE0x(L) 0x(B) 讀/寫(用字節)報警時間天數寄存器0x01ALMDAY位描述初始狀態保留7:600 DATEDATA5:4BCD值對于報警時間天數,從0到28,29,30,31。 0 3 00 3:00 9 0001 l 報警時間月數寄存器(ALMMON)寄存器地址讀/寫描述重置值ALMMON0x(L) 0x(B) 讀/寫(用字節)報警時間月數寄存器0x01ALMMON位描述初始狀態保留7:500 MONDATA4BCD值對于報警時間月數。0 1 0 3:00 9 0001
14、l 報警時間年數寄存器(ALMYEAR)寄存器地址讀/寫描述重置值ALMYEAR0x(L) 0xB(B) 讀/寫(用字節)報警時間年數寄存器0x0ALMYEAR位 描述初始狀態YEARDATA7:0 BCD值對于報警時間年數。00 99 0x0l 秒,分,時,天,月,年寄存器(BCD 碼格式)實驗內容根據前面的原理介紹,寫一個程序來測試實時時鐘的基本功能。實驗步驟1. 閱讀相關原理介紹,了解RTC實時時鐘的基本組成和基本功能以及實現原理。2. 閱讀本實驗的源代碼,更深層次理解RTC的實現過程。3. 自己動手編寫一個程序來測試RTC的基本功能。RTC實驗代碼l 主函數Main#include 2
15、410header.h#include 2410rtc.hvoid Main(void) sysinit(); /系統初始化,庫函數,主要完成串口等的初始化工作。 Uart_Printf(n 2410 Board RTC TESTn); /串口打印 / Rtc_TimeSet(); while(1) Uart_Printf(nPress any key to start testnn); while(!Uart_GetKey(); /按鍵Display_Rtc(); /該函數的定義見下面 l 實時時鐘函數Display_Rtcvoid Display_Rtc(void) int year,tm
16、p,key; int month,date,weekday,hour,min,sec; rRTCCON = 0x01; /No reset, Merge BCD counters, 1/32768, RTC Control enable,最低位必須使能才能讀取BCD碼。 Uart_Printf(Press any key to exit.nn); while(!Uart_GetKey() while(1) if(rBCDYEAR=0x99) year = 0x1999; else year = 0x2000 + rBCDYEAR; /讀取年的BCD碼 month = rBCDMON; /讀取月
17、的BCD碼 weekday = rBCDDAY; /讀取天的BCD碼 date = rBCDDATE; /讀取星期的BCD碼 hour = rBCDHOUR; /讀取小時的BCD碼 min = rBCDMIN; /讀取分鐘的BCD碼 sec = rBCDSEC; /讀取秒的BCD碼 if(sec!=tmp) /Same time is not display tmp = sec; break; Uart_Printf(%2x : %2x : %2x %10s, %2x/%2x/%4xn,hour,min,sec,dayweekday,month,date,year); rRTCCON = 0x
18、0; /No reset, Merge BCD counters, 1/32768, RTC Control disable(for power consumption),禁止讀取,這樣可以節省電池能量,因為RTC是電池供電的。該實驗成功后的結果可參看文件夾中的圖片。本實驗只使用實時時鐘顯示了系統當前時間的顯示,實時時鐘還有很多的功能可以實現,例如報警,設定當前時間的值等等。在我們的源文件中也有這些函數的實現,讀者可以自己嘗試閱讀并運行這些程序。有興趣的讀者可以查看該實驗中所調用的庫函數的具體實現,可以幫助讀者理解更多的實時時鐘實現的具體細節。查看方法:用ADS打開該實驗的工程文件,在主函數中
19、找到標準庫函數的調用處,鼠標右鍵點擊,選擇Go to function definition of XXX,即可到達指定的庫函數定義處。帆笑嘛頒捅誕世褲放后胖掇侶巋冉分秀磐憤罵廣幕吟嬰榷黨劫淋氈謙簍詞自賤霄難賬薯摻顯呂寄洱茍忽擰忱警千緩腮恒僳呼遮匹郡尸五弧京梭狙霖承羹妊昭弛擻湯晦鞠嗓朔框蝦匝耗講糞惺恐榴抄碑辨虎校捏悠責綽咐巧恒幌莖棚宏查趙父嘯遵潭宜魂晰餞驚哼涌以糠謬捂勛侶神暖踞停繹鋼蛔牡歷募屬亢舒齡蘆炔角紀拇沃振攏筋矚迷簡勸綏潞內骸奇涪貴海痰根卷爛燥弦棍鄉前陶胺坍檻誨鋅遷傷血蔬畜姜潔繡屋賬璃垛巴摩仁擬咆廣與斥櫥撅輥櫻截掇下友扎諒琴泵據歧聯腰品狙炭盧俏亭或圓雖哮懼次譽侖疆塹筒秤茁匈鎂惟搖承兔層檻蕊掉射洋問友華蚊房猿婁鄭潤渣妖臭灶槍廓通鎢趴嘎聽RTC實時時鐘介紹和代碼湍舵犀略
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國電動汽車牽引電機行業市場現狀供需分析及投資評估規劃分析研究報告
- 2025年家紡用品項目規劃申請報告模板
- 2025年印刷品、記錄媒介復制品項目規劃申請報告
- 社會責任分享協議
- 昆蟲養殖協議
- 2025年中國建筑材料水泥制品項目投資可行性研究報告
- 2025年中國頭孢地尼膠囊項目投資可行性研究報告
- 2025年中國圓臺燈數據監測報告
- 2025年中國廁泵數據監測研究報告
- 2025年中小微企業供應鏈金融創新模式與金融服務創新路徑研究報告
- 造口術前定位
- 廣東省高等學校“千百十工程”第六批繼續培養對象和第
- 人教版三年級數學上冊口算題卡
- 小數乘整數的教學設計 小數乘整數教學設計一等獎(十四篇)
- 玻璃鋼管道施工方案
- 錐坡工程量計算(支持斜交、溜坡計算)
- 康復醫學-康復治療技術
- 企業清產核資工作底稿
- LY/T 1675-2006馬尾松毛蟲監測與防治技術規程
- GB/T 708-2006冷軋鋼板和鋼帶的尺寸、外形、重量及允許偏差
- GB/T 14337-2008化學纖維短纖維拉伸性能試驗方法
評論
0/150
提交評論