exynos 4412 开发板中rtc时钟BCDDAY设置问题

半路码农 2018-05-09 10:02:43
exynos 4412 开发板中rtc时钟设置BCDDAY时,使用的是十六进制进行复制,代码如下
定义的时间结构体
typedef struct {

unsigned int BCDSEC;
unsigned int BCDMIN;
unsigned int BCDHOUR;
unsigned int BCDWEEK;
unsigned int BCDDAY;
unsigned int BCDMON;
unsigned int BCDYEAR;
}rtcbcd;
#define RTC (* (volatile rtcbcd *)0X10070070)


设置时间格式代码
RTCCON = 1;// 2018.05.09
RTC.BCDYEAR = 0X18;
RTC.BCDMON = 0X5;
RTC.BCDDAY = 0X9;
RTC.BCDHOUR = 0X5;
RTC.BCDMIN = 0X25;
RTC.BCDSEC = 0X10;
RTCCON = 0;

打印代码
printf("%x-%x-%x %02x:%02x:%02x\n",
RTC.BCDYEAR+0x2000,
RTC.BCDMON,
RTC.BCDDAY,
RTC.BCDHOUR,
RTC.BCDMIN,
RTC.BCDSEC);

在烧进开发板时,发现打印出来的时间出错,只有RTC.BCDDAY出错,只能读到RTC.BCDDAY的【0:2】位,即第三位以后的值就无法读出,哪位大神知道出什么问题了吗
...全文
1063 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
半路码农 2018-05-10
  • 打赏
  • 举报
回复
最后通过代码验证得知,exynos4412中的RTC.BCDBDAY和RTC.BCDWEEK地址在写入的时候写反了,即RTC.BCDBDAY用的是RTC.BCDWEEK的地址,因此要想正常显示日期,即在开发板自带的文件exynos4412.h头文件中,找到RTC的结构体,将RTC.BCDBDAY和RTC.BCDWEEK地址互换即可。

5,315

社区成员

发帖
与我相关
我的任务
社区描述
硬件使用专区,欢迎大家讨论硬件相关内容 宝藏!数字IC精品文章收录(CSDN近500篇) http://t.csdn.cn/QbivO
社区管理员
  • 硬件使用社区
  • 张江打工人
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧