硬汉嵌入式论坛

 找回密码
 立即注册
查看: 717|回复: 2
收起左侧

[其它] 8025T 日期不增加

[复制链接]

4

主题

10

回帖

22

积分

新手上路

积分
22
发表于 2022-8-5 10:21:17 | 显示全部楼层 |阅读模式
大佬们, 我用RX8025T出现一个诡异问题, 例如将时间设置为 2022-07-15 23:59:55; 等待5秒后, 时间变成了 2022-07-15 24:00:00; 日期不增加, 小时数也不归零,有人碰到过这个问题码?
代码如下:
[C] 纯文本查看 复制代码
u8 set_rtc_time(TIME *t)
{
	u8 rtc_str[7];

	rtc_str[0] = ((t->second / 10) << 4) | (t->second % 10);
	rtc_str[1] = ((t->minute / 10) << 4) | (t->minute % 10);
	rtc_str[2] = ((t->hour / 10) << 4) | (t->hour % 10);
	rtc_str[3] = t->week;
	rtc_str[4] = ((t->day / 10) << 4) | (t->day % 10);
	rtc_str[5] = ((t->month / 10) << 4) | (t->month % 10);
	rtc_str[6] = ((t->year / 10) << 4) | (t->year % 10);

	if (Write8025TData(RX8025T_SEC_REG, rtc_str, 7)) //写入日期与时间
		return 1;
	else
		return 0;
}


[C] 纯文本查看 复制代码
u8 get_rtc_time(TIME *t)
{
	u8 rtc_str[7];

	if (Read8025TData(RX8025T_SEC_REG, rtc_str, 7)) //获取日期与时间
		return 1;									//读取出错

	t->second = ((rtc_str[0] >> 4) * 10) + (rtc_str[0] & 0x0f);
	t->minute = ((rtc_str[1] >> 4) * 10) + (rtc_str[1] & 0x0f);
	t->hour = ((rtc_str[2] >> 4) * 10) + (rtc_str[2] & 0x0f);
	t->week = rtc_str[3];
	t->day = ((rtc_str[4] >> 4) * 10) + (rtc_str[4] & 0x0f);
	t->month = ((rtc_str[5] >> 4) * 10) + (rtc_str[5] & 0x0f);
	t->year = ((rtc_str[6] >> 4) * 10) + (rtc_str[6] & 0x0f);

	return 0;
}

回复

使用道具 举报

4

主题

10

回帖

22

积分

新手上路

积分
22
 楼主| 发表于 2022-8-5 11:06:11 | 显示全部楼层
补充现象, 将小时数用16进制设置, 0x23 也就是 35, 时间到了后, 日期增加了, 而小时数有变成了16....
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2022-8-5 12:33:34 | 显示全部楼层
没有用过这块芯片,不过RTC芯片都有个通病,他们不会自动较真用户配置的错误值的,比如星期什么的,用个错误值去配置,12小时制,24小时制等配置。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-15 14:48 , Processed in 0.242398 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表