��ǰλ��:��ҳ > Ƕ��ʽ��ѵ > Ƕ��ʽѧϰ > ��ʦ���� >
ʵʱʱ��RTC
ʱ�䣺2018-08-16���ߣ�����Զ��

ʵʱʱ�ӵ���д��RTC(Real_Time Clock)��RTC �Ǽ��ɵ�·��ͨ����Ϊʱ��оƬ��RTCͨ���������Ҫ���32.768kHz���壬ƥ����ݡ����ݵ�Դ��Ԫ����RTC����I/O�ڵĶ�λ��ͬ�����й����ϵ����𣬱�����MCU�Ľӿڣ����ڳ��õ���I2C�ӿڣ�����̣������������������ã�����RAM����������̬���Ĵ�С���жϵ��������ر��Ǿ��ȵ����� RTC�ľ��ȿ���˵���¶��кܴ�Ĺ�ϵ�����¶Ȼ�Ӱ�쾧���Ƶ�ʡ����½��ܵ��Ǽ�����оƬ�ڲ���ʱ�ӹ���ģ�顣

1 RTC����

��һ��Ƕ��ʽϵͳ�У�ͨ������RTC ���ṩ�ɿ���ϵͳʱ�䣬����ʱ����������յȣ�����Ҫ����ϵͳ���ڹػ�״̬����Ҳ�ܹ�����������ͨ�����ú󱸵�ع��磩��������ΧҲ����Ҫ̫��ĸ�����·�����͵ľ���ֻ��Ҫһ���߾��ȵ�32.768kHz����͵�����ݵȣ���ͼ1��ʾ��



ͼ12-1 RTC��ӵ�·

2 RTC������

ʵʱʱ�ӣ�RTC����Ԫ����ͨ�����õ�ع��磬��ˣ���ʹϵͳ��Դ�رգ���Ҳ���Լ���������RTC ����ͨ��STRB/LDRB ָ�8 λBCD ����������CPU����ЩBCD ���ݰ����롢�֡�ʱ�����ڡ����ڡ��º��ꡣRTC ��Ԫͨ��һ���ⲿ��32.768kHz�����ṩʱ�ӡ�RTC���ж�ʱ�����Ĺ��ܣ���ͼ2��ʾ��RTC ����������˵����


ͼ12-2 RTC������

�� ʱ�����ݲ���BCD ���롣
        �� �ܹ�������������ս����Զ������
        �� ���и澯���ܣ���ϵͳ���ڹػ�״̬ʱ���ܲ����澯�жϡ�
        �� ���ж����ĵ�Դ���롣
        �� �ṩ���뼶ʱ���жϣ����жϿ�������ΪǶ��ʽ����ϵͳ���ں�ʱ�ӡ�

3 RTC�������Ĵ������

���3��ʾΪ��ؼĴ���������

��3 RTC���ƼĴ���

RTCCON λ ���� ��λֵ
���� [31:9] ���� 0
TICEN [8] ��઼�ʱ��
0 = ��ֹ
1 = ʹ��
0
TICCKSEL [7:4] ��઼�ʱ����ʱ��Դѡ��
4'b0000 = 32768 Hz       4'b0001 = 16384 Hz
4'b0010 = 8192 Hz        4'b0011 = 4096 Hz
4'b0100 = 2048 Hz        4'b0101 =1024 Hz
4'b0110 =512 Hz          4'b0111 =256 Hz
4'b1000 =128 Hz          4'b1001 =64 Hz
4'b1010 =32 Hz           4'b1011 =16 Hz
4'b1100 =8 Hz            4'b1101 =4 Hz
4'b1110 =2 Hz            4'b1111 =1 Hz
4'b0000
CLKRST [3] RTCʱ�Ӽ�����λ
0 = ����λ
1 = ��λ
0
CNTSEL [2] BCD����ѡ��
0 = ���� BCD ����
1 = ����
0
CLKSEL [1] BCD ʱ��ѡ��
0 = XTAL 1/2 divided clock
1 = �����XTAL ��Ƶ��
0
RTCEN [0] RTC����ʹ��
0 = ��ֹ
1 = ʹ��
0

���4��ʾΪBCD��Ĵ���������

��4 BCDSEC�Ĵ���

BCDSEC λ ���� ��λֵ
���� [31:7] ���� --
SECDATA [6:4] BCD ֵ 0~5 --
[3:0] 0~9 --

���5��ʾΪBCD���ӼĴ���������

��5 BCDMIN�Ĵ���

BCDMIN λ ���� ��λֵ
���� [31:7] ���� --
MINDATA [6:4] BCD ֵ 0~5 --
[3:0] 0~9 --

���6��ʾΪBCDСʱ�Ĵ���������

��6 BCDHOUR�Ĵ���

BCDHOUR λ ���� ��λֵ
���� [31:7] ���� --
HOURDATA [5:4] BCD ֵ 0~5 --
[3:0] 0~9 --

���7��ʾΪBCD���ڼĴ���������

��7 BCDDATE�Ĵ���

BCDDATE λ ���� ��λֵ
���� [31:7] ���� --
DATEDATA [5:4] BCD ֵ 0~3 --
[3:0] 0~9 --

���8��ʾΪBCD���ڼĴ���������

��8 BCDDAY�Ĵ���

BCDDAY λ ���� ��λֵ
���� [31:3] ���� --
DAYDATA [2:0] 1~7 --

���9��ʾΪBCD�¼Ĵ���������

��9 BCDMON�Ĵ���

BCDMON λ ���� ��λֵ
���� [31:5] ���� --
MONDATA [4] BCD ֵ 0~1 --
  [3:0] 0~9 --

���10��ʾΪBCD��Ĵ���������

��10 BCDYEAR�Ĵ���

BCDYEAR λ ���� ��λֵ
���� [31:8] ���� --
YEARDATA [7:4] BCD ֵ 0~9 --
[3:0] 0~9 --

4 RTCӦ��ʾ��

1����ؼĴ�������

typedef struct {

                        unsigned int BCDSEC;
                        unsigned int BCDMIN;
                        unsigned int BCDHOUR;
                        unsigned int BCDDATE;
                        unsigned int BCDDAY;
                        unsigned int BCDMON;
                        unsigned int BCDYEAR;
        }rtcbcd;
        #define RTCBCD (* (volatile rtcbcd *)0xEA300070)

2��������

����Ĵ���ʵ����һ����RTC�������ա�ʱ��������Ĺ��ܣ����Խ�ע�͵�Ĵ��������λֵ��

void rtc_init(void)
        {
                RTCCON = 0X01; //ʹ��RTC����Щ����
                RTCBCD.BCDSEC = 0x0; // 2012 03 15, 12:59:00.��BCD���ʽд��
                RTCBCD.BCDMIN = 0x59; 
                RTCBCD.BCDHOUR =0x12;
   &nbsnbsp;            RTCBCD.BCDDATE = 0x15;
                RTCBCD.BCDMON = 0x03;
                RTCBCD.BCDYEAR = 0x12;
                RTCCON = 0; //�ر�RTC����Щ����
        }
        int main()
        {
                unsigned int i = 0;
                uart0_init();
                rtc_init(); //��ʼ��ʱ��
                while(1) //ѭ����ӡʱ��
                {
                        printf("hour %x : min %x : sec %x\r",RTCBCD.BCDHOUR,RTCBCD.BCDMIN,RTCBCD.BCDSEC);
                        for(i=0;i<10000000;i++);
                }
                return 0;
        }

2��ʵ����̼�����

�������ɵ�.elf�ļ���Ӳ�����ߡ������Ӻ�FS_JTAG�������׼���������������.elf�ļ��������ļ�ͨ�����������ز�������Ŀ����ϣ��ն˴�ӡ��Ϣ������ʾ��

hour 12 : min 59 : sec 17
        hour 12 : min 59 : sec 18
        hour 12 : min 59 : sec 19
        hour 12 : min 59 : sec 20


��������

ȫ����ѯ�绰��400-611-6270��˫���ռ��ڼ������µ�ֵ���ֻ���15010390966

������ѯ�� ����ʦQQ��3337544669���� ����ʦQQ��1462495461���� ����ʦ QQ��3108687497��

��ҵ��ѵǢ̸ר�ߣ�010-82600901��ԺУ����Ǣ̸ר�ߣ�010-82600350��������ѯ��QQ��248856300��

Copyright 2004-2018 ����Զ���������� ��Ȩ���� ����ICP��16055225�ţ�������������11010802025203��