问题标签 [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 回答
918 浏览

debugging - STM32F1 RTC_EnterConfigMode 并不总是设置配置模式

前言:这一切都在使用 ST-Link 连接到目标并在 IAR Embedded Workbench IDE 中处于调试模式时进行评估。

STM32F1 中的实时时钟在 STM 提供的标准外设库中得到支持。我正在尝试使用 RTC_SetCounter() 将 RTC 设置为 107301722,或“周六,2013 年 5 月 26 日 22:02:02 GMT”。

请注意,它调用 RTC_EnterConfigMode(),这是修改 RTC 寄存器值的要求:“要写入 RTC_PRL、RTC_CNT、RTC_ALR 寄存器,外设必须进入配置模式。这是通过设置 RTC_CRL 寄存器中的 CNF 位来完成的。 "

这是进入配置模式的代码。很简单。这是反汇编(未启用优化)。0x10 是 CNF 标志的位位置。

我发现如果我从调用 RTC_SetCounter() 到第 0x8053ee0 行的反汇编中断,配置模式将启用,但如果我将断点移动到第 0x8053ee2 行或更高版本的反汇编,配置模式不会设置,因此不会设置 RTC。

我没有尝试过任何尝试分析在非调试设置中发生的事情,因为我正在努力的部分内容是涉及设置时间的单元测试。单元测试将需要调试器附件。

这严格来说是调试器问题吗?是否有任何合理的理由来解释这种可能导致可行解决方案的行为?

0 投票
3 回答
12387 浏览

android - 如何从睡眠中唤醒安卓手机?

如何以可编程的方式从睡眠中唤醒安卓手机(挂起到内存)?我不想获得任何唤醒锁,这意味着手机在禁用 cpu 的情况下进入“真正的”睡眠状态。我想我可以使用某种 RTC(实时时钟)机制?

有没有人有任何例子?

谢谢。

0 投票
1 回答
6970 浏览

stm32 - 如何使用带有 PLL 的 HSE 和 STM32 使用 RTC 时钟

我正在使用 stm32F0xx 系列并试图让 RTC 工作。我连接了一个外部 8MHz 晶振,并使用 PLL 创建一个 48MHz 的 sysclk。显然,我想将此时钟与 RTC 一起使用。我尝试了以下方法:

在主循环中,有一个无限开关可以打开和关闭两个 LED。如果没有 RTC 配置,这可以正常工作,但是一旦我添加上面的代码,它就会停止工作。

如果我这样做,那么其余的代码就会中断。我可以使用 HSE,如果可以,我是否正确使用了预标量?

0 投票
1 回答
1364 浏览

android - Beaglebone Black:RTC DS1307/DS1338 在 Android 启动时出现错误

我正在使用 TI-Android-JB-4.2.2-DevKit-4.1.1 为 Beaglebone Black 构建一个运行良好的 Android。我尝试使用 RTC-Cape ( http://elinux.org/CircuitCo:RTC_Cape )。通过 BBB 上的“板载”Angström,我能够手动设置和读取 RTC,因此我认为硬件没问题。

为了让 RTC 在 Android 上运行,我在kernel/arch/arm/mach-omap2/board-am335xevm.cstruct 的文件中添加了

在最后

kernel/arch/arm/configs/am335x_evm_android_defconfig我激活了CONFIG_RTC_DRV_DS1307( CONFIG_RTC_DRV_DS1307=y) 并停用了CONFIG_RTC_DRV_OMAP.

在启动时它说

我试图调整来自此 Beaglebone/Linux 邮件列表的更改:https ://groups.google.com/forum/#!msg/beagleboard/DegreEdtI-Q/ZEdFLNnuTvMJ 。

我是 Android/Linux 内核配置的新手。如何在内核中正确包含和配置 RTC 以使其在启动时可用?

问候

马蒂亚斯

更新

事实证明,Beaglebone Black Cape 上的 DS1338 实际上连接到 P9 上的 17 和 18,即 Android 上的 I2C1 或 i2c-2。默认情况下,此总线在 Android 中处于停用状态。作为一个简短的解决方法,我切断了印刷的电路路径并将其连接到 P9 上的 19 和 20(I2C2 或 i2c-3)。

然后我把I2C_BOARD_INFO块移到

编译的内核现在在启动时从 RTC 读取时间。

非常感谢您的提示,user3926077。

一个合适的解决方案是在 Android 内核中激活 i2c-2 并将I2C-BOARD_INFO块放入static struct i2c_board_info am335x_i2c1_boardinfo[]. 不幸的是,我目前不知道如何实现这一点,我们只需要 RTC 进行调试,所以焊接解决方案对我们有用。

0 投票
1 回答
473 浏览

linux - 硬件时钟有时会在未来

我在机器上有内核版本为 2.6 的 Slackware。ntpd 在该机器上已关闭。我面临着奇怪的问题。有时在一个月内,硬件时钟会提前几个月,有时是几年,有时是几分钟。我不确定软件时钟跳转,因为 hwclock --hctosys 安排在 5 分钟间隔。

在内核版本 2.4 的 Slackware 上也发现了同样的问题。我们已检查没有安装任何其他导致此问题的软件,并且磁盘上没有报告病毒。

电池是好的和新的,这个问题发生在相同硬件的不同单元上。知道这是某种软件或内核问题还是与 RTC 硬件相关的问题?

0 投票
1 回答
812 浏览

utc - DST 不适用于嵌入式 linux 发行版(没有网络连接)

我一直在尝试在嵌入式 linux 上设置 DST,它安装了 Yocto Project/OpenEmbedded linux 发行版。

第一步是检查从 /etc/localtime 到 /usr/share/zoneinfo/Europe/Paris 的符号链接是否已设置。

然后下一步似乎是知道 RTC 是否设置为 UTC。社区建议检查文件 /etc/sysconfig/clock。不幸的是,这个发行版上没有这样的文件。

现在,我想到了两个问题:首先,是否存在任何其他方法来检查 RTC 是否在 UTC 上?其次,考虑到 Poky/OpenEmbedded 发行版是由自定义包的连接组成的,执行 DST 需要哪些包?

0 投票
2 回答
3311 浏览

time - Arduino TimeAlarms 有时不工作

我使用一个 Arduino Mega 兼容板(SainSmart Mega 2560 R3 ATmega2560-16AU),它附加了一个 rtc 模块(v1.1 ds1307rtc)并使用附加的代码进行处理。我使用了 TimeAlarms 库(从http://www.pjrc.com/teensy/td_libs_TimeAlarms.html下载) 每小时发出一次警报。警报应该每小时在不同的分钟发生,但为了测试,我将它们全部设置为第 12 分钟。此代码正在等待正确的时间,我可以通过 USB、串行接口设置。该代码大部分时间都运行良好。但有时警报没有激活,我的 LED 也不闪烁。我不知道为什么以及何时发生这种情况,我在工作闪烁和不工作之间没有任何变化。我也看不到它不能正常工作的任何时间,afaik 它工作正常,但有时会失败。如果它失败了,看起来失败后的所有小时都失败了,并且没有触发警报。我知道 TimeAlarms.h 中有 6 个警报的限制,并将此文件中的变量 dtNBR_ALARMS 设置为 25。

正如你所看到的,我已经实现了一个 printTime 函数,它打印出 rtc 和系统时间,并且两者总是正确的。

有谁知道我做错了什么或为什么有时会失败?

0 投票
1 回答
1078 浏览

python - 用python over i2c控制实时时钟模块PCF8563——理解smbus

我正在尝试用 python 控制实时时钟模块 PCF8563。我将模块连接到我的树莓派,我可以从模块中读取时钟。我想使用模块的内部警报功能并从 python 控制此功能。

我知道有两个 Python 库,一个 here一个 here

第一个效果很好,但缺乏对警报功能的支持。第二个涵盖了大部分功能,但依赖于我不知道也不想使用的 quick2wire 库。我实际上想改进第一个。

我还发现了与该模块相关的一个很好的文档化操作方法,但遗憾的是它适用于 Arduino。

我当前的问题是,如何从通过 i2c 总线从注册表获得的字节中读取和设置特定位。和:

我从注册表 0x01 得到一个字节。我需要将返回值从 bcd 转换为十进制,但是我怎样才能得到这个字节的第三位呢?我该如何改变它。

取自 Arudino how-to:

... 检查 0x01 处寄存器的第 3 位(“AF”警报标志位)。如果是 1,那就是闹钟时间!然后,您可以通过将该位设置为零来关闭警报。使用硬件,首先将寄存器 0x​​01 的第 1 位设置为 1——然后每当发生警报时,电流就会流入 PCF8563 的引脚 3。

0 投票
2 回答
4722 浏览

arduino - 使用 Arduino mini 的 RTC + 调度程序

我正在为我的项目和 RTC - 实时时钟模块 DS1307 使用 Arduino mini 5V 我想在某个时间唤醒电路板并运行一个功能。(蜂鸣器连接到 D3)

当我单独使用 TimeAlarm 并手动设置时间时,一切正常:


但是,当我使用 RTC 时,蜂鸣器功能不会被调用,但它仍然会打印时间

0 投票
2 回答
762 浏览

arduino - Arduino RTC rtc.getAlarmHour() 不工作

我正在尝试读取在我的 Arduino 实时时钟 (RTC) 中设置的闹钟,但由于某种原因 rtc.getAlarmHour() 和 rtc.getAlarmMinute() 似乎不起作用。我之前让他们工作过,但我不确定发生了什么变化。我正在使用 Arduino Uno。以下代码仅返回“下一个警报:0:0”。