关于RTC计算问题

[复制链接]
3108|6
 楼主| jinjing999 发表于 2009-8-24 17:24 | 显示全部楼层 |阅读模式
我用以下方法计算:
   u32_TimeVar=u32_TimeVar % 86400;
   s_DateStructVar.u8_hour = (u8)(u32_TimeVar/3600);
   s_DateStructVar.u8_min  = (u8)((u32_TimeVar%3600)/60);
   s_DateStructVar.u8_sec  = (u8)((u32_TimeVar%3600)%60);

我查询看计算结果,结果发现秒没有零,
直接是两个1秒,没有零秒?
这是为什么啊?
seawwh 发表于 2009-8-24 18:25 | 显示全部楼层
[quote][/quote]

   s_DateStructVar.u8_hour = (u8)(u32_TimeVar/3600 % 24);
   s_DateStructVar.u8_min  = (u8)((u32_TimeVar/60 % 60);
   s_DateStructVar.u8_sec  = (u8)((u32_TimeVar % 60);
 楼主| jinjing999 发表于 2009-8-25 09:38 | 显示全部楼层
谢谢
我试试,看秒还有没有零
香水城 发表于 2009-8-25 09:50 | 显示全部楼层
其实你可以通过调试自己找出问题,只需要在调试的时候,自己用几个虚拟的数字带入那段程序演算一下即可。

例如设置u32_TimeVar=86400、u32_TimeVar=3600、u32_TimeVar=60等数值,单步调试,很快就能找到问题。

自己发现问题,解决问题,才是最有效的方法。
shu9810956 发表于 2009-8-27 20:21 | 显示全部楼层
还没有软时钟好
 楼主| jinjing999 发表于 2009-8-28 13:57 | 显示全部楼层
不是算法的问题
在零秒的时候,数据没有更新,只有延时10MS后才能用        u32_TimeVar = RTC_GetCounter();读取
fqingy2003 发表于 2009-9-18 10:13 | 显示全部楼层
楼主,有问题我们可以交流一下,同行业的。我的qq:417507937,解决这个问题比较麻烦,很不爽,而且他的复位跟备份数据连在一起,一复位备份数据就丢失了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

73

主题

363

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部