日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]S3C2440擁有一個實時時鐘模塊,可以在當系統(tǒng)電源關閉后通過備用電池工作。RTC可以通過使用STRB/LDRB ARM操作發(fā)送8位二-十進制交換碼(BCD)值數(shù)據(jù)給CPU。這些數(shù)據(jù)包括年、月、日、星期、時、分和秒的時間信息。RTC單元

S3C2440擁有一個實時時鐘模塊,可以在當系統(tǒng)電源關閉后通過備用電池工作。RTC可以通過使用STRB/LDRB ARM操作發(fā)送8位二-十進制交換碼(BCD)值數(shù)據(jù)給CPU。這些數(shù)據(jù)包括年、月、日、星期、時、分和秒的時間信息。RTC單元工作在外部32.768kHz晶振并且可以執(zhí)行鬧鐘功能

實時時鐘模塊保存的數(shù)據(jù)是DCD碼形式.

框圖如下


可以看到,要使用實時時鐘依靠以下幾個寄存器


包含時鐘使能和時鐘復位(還有兩個寄存器是測試模式,我們用不到)


關聯(lián)著時鐘節(jié)拍中斷,也就是每增加1S發(fā)生一次中斷


時鐘中斷,時鐘的時分秒年月日都是可以進行使能的

接下來是時分秒年月日鬧鐘點設置

有六個就不一一列舉了,意思是當?shù)竭_這個時間點時發(fā)生中斷,比如我設置23秒發(fā)生中斷,那么每一分鐘的23秒都會中斷一次

還要注意,因為使用的是BCD計數(shù),所以對時鐘的讀取,寫入都要進行BCD碼的轉(zhuǎn)換,否則數(shù)據(jù)不對哦

詳細查看代碼

#include"rtc.h"char*week_num[7]={"SUN","MON","TUES","WED","THURS","FRI","SAT"};RTC_TIMERrtcTimer;ALARM_TIMERalarmTimer;/**********************************TICK中斷**********************************/void__irqRTC_tickHandler(void){rSRCPND"=BIT_TICK;//清除源掛起rINTPND|=BIT_TICK;//清除中斷掛起RTCGetValue();printf("currentyear%dmouth%dday%dhour%dminute%dsec%drn",rtcTimer.year,rtcTimer.month,rtcTimer.day,rtcTimer.hour,rtcTimer.minute,rtcTimer.second);}/**********************************alarm鬧鐘中斷**********************************/void__irqRTC_alarmHandler(void){rSRCPND|=BIT_RTC;//清除源掛起rINTPND|=BIT_RTC;//清除中斷掛起printf("alarminthappendrn");}//rtc獲取時間voidRTCGetValue(void){u8temp=0,cover=0;rRTCCON|=0x01;//RTC讀寫使能,BCD時鐘、計數(shù)器、無復位temp=rBCDYEAR;temp=((temp/16)*10)+(temp%16);rtcTimer.year=temp+YEAR_BASE;temp=rBCDMON;temp=((temp/16)*10)+(temp%16);rtcTimer.month=temp;temp=rBCDDATE;temp=((temp/16)*10)+(temp%16);rtcTimer.day=temp;temp=rBCDDAY;temp=((temp/16)*10)+(temp%16);rtcTimer.weekDay=temp;temp=rBCDHOUR;temp=((temp/16)*10)+(temp%16);rtcTimer.hour=temp;temp=rBCDMIN;temp=((temp/16)*10)+(temp%16);rtcTimer.minute=temp;temp=rBCDSEC;temp=((temp/16)*10)+(temp%16);rtcTimer.second=temp;rRTCCON&=~(1<<0);//RTC讀寫禁止,BCD時鐘、計數(shù)器、無復位}voidRTCSetValue(void){u8temp;rRTCCON|=0x01;//RTC讀寫使能,BCD時鐘、計數(shù)器、無復位temp=rtcTimer.year-YEAR_BASE;temp=((temp/10)*16)+(temp%10);rBCDYEAR=temp;temp=rtcTimer.month;temp=((temp/10)*16)+(temp%10);rBCDMON=temp;temp=rtcTimer.day;temp=((temp/10)*16)+(temp%10);rBCDDATE=temp;temp=rtcTimer.weekDay;temp=((temp/10)*16)+(temp%10);rBCDDAY=temp;temp=rtcTimer.hour;temp=((temp/10)*16)+(temp%10);rBCDHOUR=temp;temp=rtcTimer.minute;temp=((temp/10)*16)+(temp%10);rBCDMIN=temp;temp=rtcTimer.second;temp=((temp/10)*16)+(temp%10);rBCDSEC=temp;rRTCCON&=~(1<<0);//RTC讀寫禁止,BCD時鐘、計數(shù)器、無復位}voidRtcSetAlarm(void){u8temp;rRTCCON|=0x01;//RTC讀寫使能,BCD時鐘、計數(shù)器、無復位temp=alarmTimer.year-YEAR_BASE;temp=((temp/10)*16)+(temp%10);rALMYEAR=temp;temp=alarmTimer.month;temp=((temp/10)*16)+(temp%10);rALMMON=temp;temp=alarmTimer.day;temp=((temp/10)*16)+(temp%10);rALMDATE=temp;temp=alarmTimer.hour;temp=((temp/10)*16)+(temp%10);rALMHOUR=temp;temp=alarmTimer.minute;temp=((temp/10)*16)+(temp%10);rALMMIN=temp;temp=alarmTimer.second;temp=((temp/10)*16)+(temp%10);rALMSEC=temp;rRTCALM=0x41;//RTC鬧鐘控制寄存器,啟動秒中斷和總中斷rRTCCON&=~(1<<0);//RTC讀寫禁止,BCD時鐘、計數(shù)器、無復位}voidRtcInit(u8tick){rtcTimer.year=2014;rtcTimer.month=10;rtcTimer.day=10;rtcTimer.weekDay=5;rtcTimer.hour=16;rtcTimer.minute=34;rtcTimer.second=52;alarmTimer.year=2014;alarmTimer.month=10;alarmTimer.day=10;alarmTimer.weekDay=5;alarmTimer.hour=16;alarmTimer.minute=34;alarmTimer.second=52;rRTCCON=0x01;rTICNT=(tick&0x7f)|0x80;//使能中斷RTCSetValue();//設置時間RtcSetAlarm();//設置鬧鐘//開啟中斷pISR_RTC=(unsigned)RTC_alarmHandler;pISR_TICK=(unsigned)RTC_tickHandler;//中斷函數(shù)入口地址rSRCPND|=BIT_RTC;//清除源掛起rINTPND|=BIT_RTC;//清除中斷掛起rINTMOD&=~BIT_RTC;//設置中斷模式為IRQ模式rSRCPND|=BIT_TICK;//清除源掛起rINTPND|=BIT_TICK;//清除中斷掛起rINTMOD&=~BIT_TICK;//設置中斷模式為IRQ模式rINTMSK&=~BIT_RTC;//開中斷rINTMSK&=~BIT_TICK;//開中斷}

#ifndef__RTC_H#define__RTC_H#include"2440addr.h"#include"def.h"#include"uart0.h"#defineYEAR_BASE2000typedefstructRTC_TIMER{u16year;u8month;u8day;u8weekDay;u8hour;u8minute;u8second;}RTC_TIMER;typedefstructALARM_TIMER{u16year;u8month;u8day;u8weekDay;u8hour;u8minute;u8second;}ALARM_TIMER;externstructRTC_TIMERrtcTimer;voidRTCGetValue(void);voidRTCSetValue(void);voidRtcSetAlarm(void);voidRtcInit(u8tick);#endif


本站聲明: 本文章由作者或相關機構(gòu)授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

  本文根據(jù)網(wǎng)絡視頻采集的需要,將網(wǎng)絡傳輸與視頻采集相結(jié)合,設計了以S3C2440為核心的USB攝像頭視頻采集和嵌入式Linux系統(tǒng)下的視頻服務器,從而實現(xiàn)了遠程網(wǎng)絡視頻信息采集。   

關鍵字: s3c2440 視頻采集 usb攝像頭

         之前在提起自動化或是智能化時,人們會不自覺的想到工業(yè)生產(chǎn),這是因為自動化這個字眼進入中國,確實是以工業(yè)

關鍵字: 嵌入式 Linux s3c2440 視頻采集

  引言   隨著科技的不斷發(fā)展,以數(shù)據(jù)業(yè)務為主的固定寬帶無線接入技術發(fā)展已經(jīng)很成熟,而移動寬帶無線通信技術還并沒有得到廣泛的應用。由于移動寬帶無線接入系統(tǒng)需要解決帶寬、移動性和覆蓋范圍

關鍵字: IPv6 s3c2440 x86 架構(gòu)

  2016年2月26日,德國慕尼黑和西班牙巴塞羅那訊——贏得消費者的信任對于智能移動設備支付解決方案至關重要。作為全球最大的安全芯片供應商之一,英飛凌科技股份公司(FS

關鍵字: rtc 機器人 rx8010sj

  1 引言   人們生活水平的提高以及科技的進步,特別是計算機技術、網(wǎng)絡技術和通信技術的發(fā)展,智能家居將慢慢成為未來家居生活的發(fā)展方向。1984年在美國誕生了世界上第一座智能家居建筑,

關鍵字: boa nrf24l01 s3c2440 智能家居

博主使用的是天嵌的開發(fā)板型號IMX6Q_coreC。1.發(fā)現(xiàn)使用開發(fā)板是時間總是被設置為2028年6月18日3時41分,一開始以為是底層驅(qū)動的問題, 故去底層加打印信息調(diào)試。2.發(fā)現(xiàn)在系統(tǒng)內(nèi)hwclo

關鍵字: Linux rtc

我們知道2440開發(fā)流程為:移植uboot--》移植內(nèi)核---》掛接根文件系統(tǒng)。我們移植完內(nèi)核需要掛接根文件系統(tǒng),那么首先我們必須擁有根文件系統(tǒng)。如何來制作我們的根文件系統(tǒng)呢?第一步:在linux下建

關鍵字: s3c2440 根文件系統(tǒng)

1.TQ2440u-boot-1.1.6修改文件所在的路徑是u-boot-1.1.6includeconfigsEmbedSky.h將#defineLCD_TFTxxx(LCD類型)W353.5寸TFT4802724.3...

關鍵字: s3c2440 lcd參數(shù)

2440的晶振頻率為12MHZ,有兩個PLL:MPLL和UPLL,其中MPLL產(chǎn)生FCLK、HCLK、PCLK;UPLL產(chǎn)生UCLK。FCLK為ARM核提供時鐘,HCLK為AHB總線時鐘,PCLK為APB總線時鐘,UCL...

關鍵字: s3c2440 時鐘初始化

開發(fā)板:TQ2440內(nèi)核:Linux 2.6.32PC OS:Ubuntu 11.041.配置內(nèi)核打開I2C功能:打開雜項設備,該選項打開后,EEPROM也就打開了。2. 修改代碼修改文件: linux/arch/arm...

關鍵字: at24c02 eeprom s3c2440 移植 linux驅(qū)動
關閉