当前位置:
文档之家› S3C2410的RTC实时时钟
S3C2410的RTC实时时钟
BCDMIN 0x57000074 (R/W) 分时钟当前值 不定
BCDHOUR 0x57000078 (R/W) 时时钟当前值 不定
BCDDAY 0x5700007C BCDDATE 0x57000080 BCDMON 0x57000084
(R/W) (R/W) (R/W)
日时钟当前值 不定 星期当前值 不定 月时钟当前值 不定
month = rBCDMON; day = rBCDDAY;
weekday = rBCDDATE; hour = rBCDHOUR;
min = rBCDMIN;
sec = rBCDSEC;
if(sec!=0) break;
}
精选课件
8
printf( "RTC TIME : %4x / %02x / %02x %s – %02x: %02x: %02x\n", year, month, day, date[weekday], hour, min, sec );
精选课件
1
2、S3C2410的RTC基本特性
时钟数据采用BCD编码 能够对闰年的年月日进行自动处理 具有报警功能 具有独立的电源输入 提供毫秒级时钟中断,可作为内核时钟
精选课件
2
(3)秒、分、时、日、星期、月、年寄存器
寄存器名
地址 R/W (byte)
说明
复位值
BCDSEC 0x57000070 (R/W) 秒时钟当前值 不定
rBCDHOUR = 0x17 ; // 设定小时
rBCDMIN = 0x34 ; // 设定分钟
rBCDSEC = 0x28 ; // 设定秒
rRTCCON = 0x00; // RTC读写禁止,选择BCD时钟
// 无复位,1/32768
}
精选课件
6
6、RTC 编程实例
(2)实时时钟显示函数 void Display_Rtc(void) /************************************************ Function name: Display_Rtc Description : 实时时钟显示程序 Argument : 读出当前的时间,然后显示 ************************************************/
rRTCCON = 0x0; }
精选课件
9
6、RTC 编程实例
(3)测试主函数 void main (void) /********************************************** Function name: main Argument : 初始化系统,并调用RTC显示函数 ***********************************************/
#define rBCDSEC (*(volatile unsigned char *)0x57000070)
#define rBCDMIN (*(volatile unsigned char *)0x57000074)
#define rBCDHOUR (*(volatile unsigned char *)0x57000078)
精选课件
10
void Main (void)
{
BoardInitStart(); // 系统初始化,MMU初始化
SystemClockInit(); // 系统时钟初始化
RtcInit();
// RTC初始化
while (1)
{
Display_Rtc( );
Delay(500);
}
}
精选课件
11
感谢亲观看此幻灯片,此课件部分内容来源于网络,id Display_Rtc(void)
{
int year;
int month, day, weekday, hour, min, sec;
rRTCCON = 0x01;
while(1)
{
if (rBCDYEAR == 0x99) year = 0x1999;
else year = 0x2000 + rBCDYEAR;
#define rBCDYEAR (*(volatile unsigned char *)0x57000088)
精选课件
4
6、RTC 编程实例
(1)实时时钟初始化函数 void Rtc_Init(void) /********************************************* Function name: Rtc_Init Description : 实时时钟初始化程序 *********************************************/
BCDYEAR 0x57000088 (R/W)
精选课件
年时钟当前值 不定
3
6、RTC 编程实例
#define rRTCCON (*(volatile unsigned char *)0x57000040)
#define rTICNT
(*(volatile unsigned char *)0x57000044)
#define rBCDDATE (*(volatile unsigned char *)0x5700007c)
#define rBCDDAY (*(volatile unsigned char *)0x57000080)
#define rBCDMON (*(volatile unsigned char *)0x57000084)
RTC实时时钟
1、S3C2410的RTC实时时钟
在一个嵌入式系统中,通常采用RTC来提供可靠的 系统时间,包括时、分、秒和年、月、日、星期等,而 且要求在系统处于关机状态下它也能够正常工作(通常 采用后备电池供电)。
它的外围也不需要太多的辅助电路,典型的就是只 需要一个高精度的32.768KHz晶体和电阻电容等。
精选课件
5
void Rtc_Init(void)
{ rRTCCON = 0x01; // RTC读写使能,选择BCD时钟
// 无复位,1/32768
rBCDYEAR = 0x05 ; // 设定年
rBCDMON = 0x03 ; // 设定月
rBCDDAY = 0x06 ; // 设定日
rBCDDATE = 0x03 ; // 设定星期