问题标签 [real-time-clock]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
13897 浏览

timer - STM32通过RTC从待机中唤醒

我正在编程 STM32L051R8 并且有下一个问题。我大部分时间都在尝试使用待机模式,有时会被 RTC 唤醒,这是一种自动唤醒。如果我在没有睡眠的情况下工作 - 一切正常,我每次都会收到 RTC 中断,但是当我使用待机时 - 不要。

如果我使用待机,我有一个很好的第一个周期:

  1. 重置
  2. 设置实时时钟
  3. 进入待机
  4. 等待中断
  5. 醒来

但是第二个和下一个周期在进入待机 (3) 后立即唤醒。

0 投票
1 回答
469 浏览

timer - NTP 和 RTC 硬件时钟奇怪的结果

为了使 ODroid 上的系统时间尽可能接近实时,我尝试向 ODroid 添加实时时钟。RTC 的精度为 +/- 4ppm。

如果没有实时时钟,我会得到这样的结果(每 60 秒与 NTP 服务器同步)。蓝色是用于比较的橙色 Pi。x 轴是样本,y 轴是 NTP-server 报告的偏移量,以 ms 为单位。

没有 RTC 的时间同步

所以我尝试的是同样的事情(虽然有更多的样本,但间隔相同),但我不只是与 NTP 服务器同步,而是执行了以下操作:

  1. 将系统时间设置为硬件时钟时间。
  2. 与 NTP-server 同步更新系统时间,并记录服务器给定的偏移量
  3. 将硬件时钟更新为系统时间,因为它刚刚同步到实时。

然后我等待 60 秒并重复。我没想到它是完美的,但我得到的东西让我有点震惊。

带 RTC 的 ODroid

我到底在看什么?抖动变得越来越小,几乎是一条直线,但当它达到完美时间(大约 410 分钟......)时,它似乎还在继续,让抖动和偏移再次增长。

谁能解释一下,或者告诉我我做错了什么?这很奇怪!

0 投票
1 回答
2916 浏览

c++ - 日期时间,字符串比较

我需要将传入的字符串与来自 DS1307 RTC 模块的日期和时间进行比较。如果达到字符串的特定时间,我将触发一个事件。

我试过使用转换为整数,但它不起作用。

错误说conversion from DateTime to non-scalar type String is requested

如何将日期时间与字符串进行比较?

0 投票
2 回答
476 浏览

arduino - Arduino RTC 模块显示备用信息

所以我尝试使用 DS1302 RTC 制作一个 Arduino LCD 实时时钟。

它工作并正确读取存储在 RTC 中的时间,但每隔一秒显示空数据集

这是串行监视器和草图的快照

我似乎找不到问题。

它可能来自图书馆本身,但我是从一个视频中获得的,该视频在视频中似乎运行良好。

我是这种环境的新手,因此非常感谢任何类型的帮助。这是我的草图。

DS1302 库

0 投票
0 回答
512 浏览

raspberry-pi - 树莓派零 DS3231 RTC

我有一个 Raspberry PI 零并想添加一个 HWClock DS3231 ( https://www.amazon.de/DS3231-RTC-Modul-f%C3%BCr-Raspberry/dp/B01B4IV30C/ref=sr_1_fkmr0_2?s=computers&ie= UTF8&qid=1486456449&sr=8-2-fkmr0&keywords=raspberry+pi+zero+rtc ) 就可以了。

在我的 Raspberry PI 3 B 上,它运行良好。但是当我尝试在我的零上使用它时它不会工作。

我不确定我是否将 RTC 放在正确的 GPIO 引脚上,但没有找到任何方法。有没有人使用 Raspberry PI Zero 与 DS3231 RTC 模块一起工作?

谢谢你的帮助。

在此处输入图像描述

0 投票
1 回答
1220 浏览

linux - 无法将实时时钟的模式设置为 UTC

在我的 Debian (Jessie) Linux 机器上,我想按照timedatectl命令的建议将实时时钟的模式设置为 UTC(见下文)。但这似乎无法正常工作。

执行作为systemd-timesyncd守护进程概念一部分的timedatectl命令会导致以下警告:

警告:系统配置为读取本地时区的 RTC 时间。无法完全支持此模式。它会在时区更改和夏令时调整方面产生各种问题。RTC 时间永远不会更新,它依赖于外部设施来维护它。如果可能,请通过调用“timedatectl set-local-rtc 0”来使用 UTC 格式的 RTC。

提交建议的命令:

导致以下错误:

设置本地 RTC 失败:设置 RTC 为本地/UTC 失败:输入/输出错误

当第二次立即提交相同的命令时,没有错误,上面的 UTC 警告也消失了。但不幸的是,这在 1-2 分钟后又恢复了!这意味着当等待几分钟然后再次执行timedatectl时,警告又回来了!

备注:我正在使用具有 RTC 时钟(不是嵌入式系统)的普通 Linux 机器!

0 投票
1 回答
8197 浏览

timer - STM32 RTC 初始化期间超时

我正在尝试在 STM32F469I-DISCO 板上初始化 RTC。因为我还在学习,所以我尝试使用 HAL API,它允许我完成一些项目,直到我对这个微控制器有足够的了解,可以直接使用寄存器。

无论如何,我的代码使用来自 CubeF4 的 STM32F469I-DISCO 模板,它允许直接加载 HAL 层和系统时钟(通过 8 MHz HSE 振荡器实现 180 MHz)。

为了初始化 RTC,我遵循了UM1725 中给出的说明:STM32F4 HAL 和 LL 驱动程序的说明。第 715 页,第 55.2.4 节您有使用 HAL_RTC API 的说明。

第一点说有必要启用“RTC域访问”。这一点在上面的部分(55.2.3,同一页)中进行了解释。

我做了它被要求做的事情。这是我的代码(简化,我只让 RTC Init 部分和系统时钟配置):

它不起作用。在深入研究了最低层之后,我设法找到了它不起作用的地方。我只是不知道为什么。

HAL_RTC_Init() 调用返回 HAL_ERROR 状态。出现此 HAL_ERROR 是因为 HAL_RTC_Init() 调用 RTC_EnterInitMode() 并返回 HAL_TIMEOUT 状态,因为在预期时间内未达到条件。以下是功能:

和 :

所以,如果我调查得很好,问题是条件:hrtc->Instance->ISR & RTC_ISR_INITF == (uint32_t)RESET 一直为真(因为引发了 TIMEOUT 条件)。我不明白的是根据上面的函数(EnterInitMode),RTC_ISR_INITF 和 ISR 变量似乎被明确定义,因此按位运算值不是 0(RESET)。

“ISR”直接在函数中定义,是 RTC_INIT_MASK (#define with 0xFFFFFFFF value in stm32f4xx_hal_rtc.h)

“RTC_ISR_INITF”是一个宏: (0x1U << RTC_ISR_INITF_Pos) 其中 RTC_ISR_INITF_Pos 是 stm32f469xx.h 中定义的 6U (#define)

如果我说“&”操作不是 0 我错了吗?

你知道为什么我会提出这个 TIMEOUT 条件吗?

提前致谢 !

0 投票
2 回答
2105 浏览

linux - 为什么需要超级用户权限才能读取 Linux 上的实时时钟?

实时时钟/dev/rtc可以使用hwclock -r 读取,但只能以 root 身份读取。

我想不出任何好的理由来阻止任何用户阅读时钟。那么为什么这里需要root权限呢?

我唯一的想法是它必须与可以以某种方式与系统交互的低级查询有关。也许如果你不断地阅读 /dev/rtc 你可以阻止它足够长的时间来扰乱内核?

上下文:我现在负责从/dev/rtc读取的应用程序。因此,它必须以 root 身份运行,但没有真正的理由不能成为用户空间应用程序。我质疑它是否需要使用实时时钟,但我的问题仍然存在。

0 投票
1 回答
3285 浏览

timer - RTC 未运行

我尝试在我的 Arduino 项目中使用 RTC DS1307,每次我运行我的代码时都会收到此错误:RTC is not running. 该代码应每分钟点亮一个 LED:10sc 并每分钟关闭一次:20s。

这是我写的代码:

我使用了来自 Arduino 站点的 RTClib.h 库。请有任何想法。

0 投票
1 回答
1928 浏览

esp8266 - RTC 内存 ESP8266 12-E 读写

什么是写入变量的正确语法让我们说 int100到 ESP8266 12-E 模块的 RTC 内存中,并在重启或深度睡眠后检索它。