s3c2410实时时钟模块要点分析

作者:杨硕,华清远见嵌入式学院讲师。

1. 概述

RTC的功能:通常采用RTC来提供可靠地系统时间,包括年月日时分秒等信息。
        RTC在系统处于关机状态下也能够正常工作,因为有后备电池供电
        RTC的外围不需要太多的辅助电路,典型的只需要一个高精度的32.768KHz晶振和电容就可以了,如下图所示:

以前的产品里面RTC模块是一个独立的芯片,现在随着SOC技术的成熟,更多的是把RTC集成到芯片内部,S3C2410内部就集成了一个RTC模块。

很多嵌入式产品都有RTC功能,手机、电子日历、数码产品、机顶盒等

S3C2410的RTC具有如下特点:

●    时钟数据采用BCD编码(用4个二进制位表示一个十进制数)
        ●    时钟数据有:年月日时分秒和星期
        ●    能够对闰年的年、月、日进行自动处理
        ●    具有报警功能(中断:INT_RTC)
        ●    具有独立的电源输入
        ●    提供毫秒级时钟中断(可用于嵌入式实时操作系统的内核时钟)

2. 结构

2410的RTC主要由五部分构成:

●    时钟发生器
        ●    节拍发生器
        ●    时间与日期计数器
        ●    报警发生器
        ●    控制逻辑

如下图所示:

3. 寄存器

控制寄存器:RTCCON
        报警控制寄存器:RTCALM
        实时时钟计数器:TICNT
        报警时间寄存器:ALMSEC,ALMMIN,ALMHOUR,ALMDATE,ALMMON,ALMYEAR

4. 实时时钟编程步骤

1)初始化实时时钟
        void inittime()
        {
                rRTCCON=0x0;
        }

2)向实时时钟寄存器写入当前时间
        void settime(struct time *t)
        {
                rRTCCON|=0x01;
                rBCDYEAR=t->year;
                rBCDMON=t->mon;
                rBCDDAY=t->weekday;
                rBCDDATE=t->day;
                rBCDHOUR=t->hour;
                rBCDMIN=t->min;
                rBCDSEC=t->sec;
                rRTCCON&=0xFE;
        }

3)读取时间并显示
        void gettime(struct time *t)
        {
                rRTCCON|=0x01;
                while(1)
                {
                        t->year=rBCDYEAR;
                        t->mon=rBCDMON;
                        t->weekday=rBCDDAY;
                        t->day=rBCDDATE;
                        t->hour=rBCDHOUR;
                        t->min=rBCDMIN;
                        t->sec=rBCDSEC;
                        If(t->sec !=0)
                                break;
                }
                rRTCCON&=0xFE;
        }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值