Chinaunix首页 | 论坛 | 博客
  • 博客访问: 72395
  • 博文数量: 63
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 14
  • 用 户 组: 普通用户
  • 注册时间: 2018-09-15 14:26
文章分类

全部博文(63)

文章存档

2018年(63)

我的朋友

分类: C/C++

2018-09-15 14:31:21

原文地址:Cortex_A9----RTC 作者:小米拍客光

RTC 实验

0001 1000
BCD:    18
0x :    0x18


RTC是什么?

RTCCON
CTLEN  [0] : 1 = Enables RTC control

BCDSEC
SECDATA [6:4]:0 to 5
        [3:0]:0 to 9 

MINDATA [6:4]:0 to 5
        [3:0]:0 to 9 

BCDHOUR
HOURDATA [5:4]: 0 to 2
         [3:0]: 0 to 9 

BCDDAYWEEK
DAYWEEKDATA  [2:0]: 1 to 7

BCDDAY
DAYDATA [5:4]:0 to 3
        [3:0]  0 to 9

BCDMON
MONDATA [4]: 0 to 1
        [3:0]  0 to 9

BCDYEAR

YEARDATA [11:8] 0 to 9
         [7:4]  0 to 9  
         [3:0]  0 to 9 



点击(此处)折叠或打开

  1. #include "exynos_4412.h"
  2. #include "uart.h"

  3. int main()
  4. {
  5.     unsigned int old_time;

  6.     /* 1. 使能RTC的控制寄存器 */
  7.     RTCCON |= (0x1<<0);

  8.     /* 2. 设置当前时间 */
  9.     RTC.BCDYEAR = 0x16;
  10.     RTC.BCDMON = 0x06;
  11.     RTC.BCDDAY = 0x07; //芯片手册地址有误
  12.     RTC.BCDWEEK = 0x13;
  13.     RTC.BCDHOUR = 0x09;
  14.     RTC.BCDMIN = 0x48;
  15.     RTC.BCDSEC = 0x30;

  16.     /* 3. 关闭RTC控制寄存器 */
  17.     RTCCON &= (~(0x1<<0));

  18.     uart_init();

  19.     puts("***************************** current time! *************************\n");

  20.     old_time = RTC.BCDSEC;
  21.     while (1)
  22.     {
  23.         if (old_time != RTC.BCDSEC)
  24.         {
  25.             printf("year: 20%x, mon: %02x, day: %02x, week: %x\n", RTC.BCDYEAR, RTC.BCDMON, RTC.BCDWEEK, RTC.BCDDAY);
  26.             printf("%02x:%02x:%02x\n", RTC.BCDHOUR, RTC.BCDMIN, RTC.BCDSEC);
  27.             old_time = RTC.BCDSEC;
  28.         }
  29.     }

  30.     return 0;
  31. }




阅读(414) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~