从RTC获得正常运行时间

时间:2017-06-19 12:22:05

标签: timer arm stm32 uptime real-time-clock

我想在几秒钟内从RTC获得系统的正常运行时间。关键在于,虽然我可以总结RTC时间寄存器(RTC_TR)中的值,但它只能工作24小时,然后在将一天添加到RTC日期寄存器(RTC_DR)时溢出。

如何从启动系统开始计算秒数?我不需要日历。

下面解释“溢出”是什么意思

我根据STM的StdPeriph的RTC_LSI示例配置了RTC,并且只设置时间而不是日期。

然而,当我使用RTC_GetTime函数从RTC_TR获取时间时,在23h59m59s之后,时间会回到0h0m0s。

当然,RTC_TR以其BCD格式保存时间,以当前小时,分钟和秒为单位,并且在RTC_DR中计算天数。无论如何,我希望它继续增加时间,而不是将日期添加到日期寄存器,因为我只想计算正常运行时间,我担心如果我开始计算我有问题的几个月和几天。

// Ionic
import { IonicPage } from 'ionic-angular';

@IonicPage()
@Component({...})
export class MyPage {}

1 个答案:

答案 0 :(得分:1)

溢出是什么意思。显示您的代码&数学

在32位中,您可以存储:

Seconds         Hours            Days              Years
4294967295      1193046.471      49710.26962       136.1925195

如果预计的上升时间超过136.2年,则使用64位无符号整数,您将能够计算到:

Seconds                 Hours               Days            Years           Decades     Centuries   Millenniums Aeons (10e9 years)
18446744073709600000    5124095576030430    213503982334601 584942417355    58494241736 5849424174  584942417   585

希望你能够做到。