标签: real-time-clock

如何从睡眠中唤醒Android手机?

如何以可编程方式唤醒Android手机从睡眠状态(暂停到mem)?我不想获得任何唤醒锁,这意味着手机在禁用cpu的情况下进入"真正的"睡眠状态.我想我可以使用某种RTC(实时时钟)机制?

有没有人有任何例子?

谢谢.

android sleep wakeup real-time-clock

10
推荐指数
3
解决办法
9978
查看次数

STM32通过RTC从待机状态唤醒

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

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

  1. 重启
  2. 设置RTC
  3. 进入待机状态
  4. 等待中断
  5. 醒来

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

microcontroller timer stm32 wakeup real-time-clock

7
推荐指数
1
解决办法
8351
查看次数

初始化期间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部分和系统时钟配置):

#include "main.h"

RTC_HandleTypeDef rtcHandle;
RTC_InitTypeDef rtcInit;
RTC_TimeTypeDef rtcTime;
RTC_DateTypeDef rtcDate;

static void SystemClock_Config(void);
static void Error_Handler(void);


int main(void)
{
  HAL_Init();
  SystemClock_Config();

  ////////////////// RTC 

  HAL_PWR_EnableBkUpAccess();
  __HAL_RCC_RTC_CONFIG(RCC_RTCCLKSOURCE_LSE);
  __HAL_RCC_RTC_ENABLE();

  rtcInit.HourFormat = RTC_HOURFORMAT_24;
  rtcInit.AsynchPrediv = 0x7F;
  rtcInit.SynchPrediv = 0xFF;
  rtcInit.OutPut = RTC_OUTPUT_DISABLE;
  rtcInit.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;
  rtcInit.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;

  rtcHandle.Instance = RTC;
  rtcHandle.Init = rtcInit;

  HAL_RTC_Init(&rtcHandle);

  rtcTime.Hours = 12;
  rtcTime.Minutes = 30;
  rtcTime.Seconds = 40;

  rtcDate.WeekDay = RTC_WEEKDAY_WEDNESDAY; …
Run Code Online (Sandbox Code Playgroud)

timer stm32 real-time-clock

6
推荐指数
1
解决办法
4268
查看次数

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

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

>hwclock -r --debug
hwclock from util-linux 2.23.2
hwclock: cannot open /dev/rtc: Permission denied
No usable clock interface found.
hwclock: Cannot access the Hardware Clock via any known method.
>sudo hwclock -r
[sudo] password for xxx: 
Wed 26 Apr 2017 12:44:01 BST  -0.281946 seconds

我想不出有任何理由阻止任何用户阅读时钟.那么,为什么这里需要根接取?

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

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

linux clock real-time-clock

6
推荐指数
1
解决办法
885
查看次数

RTC 星期几字节

我通过端口 0x70 和 0x71 直接读取/写入 RTC。根据手册,工作日字节将保存星期几,Sunday=1,值范围从 1 到 7。当我读取今天得到的字节 4 时,即星期三。而当我阅读 RTC 信息时,hwclock -r日期是星期四,这是正确的。

将日期设置hwclock为其他日期并使用我的代码读取它不会反映工作日字节的变化。

此问题在所有系统中都存在。可能是什么问题?

x86 assembly real-time-clock

5
推荐指数
1
解决办法
1822
查看次数

是否有 Windows API 可以立即重新读取 CMOS RTC?

讨论中,据说 Windows 大约每小时重新读取 CMOS RTC。Windows 中是否有 API 可以立即从 CMOS RTC 重新读取日期/时间?

换句话说:运行多操作系统机器时,需要指示Windows:“CMOS 内容已更改(被同一台机器上并行运行的另一个操作系统更改)。请重新读取时间”。有标准的 API 吗?

是在 RTOS-32 中完成工作的函数。

在 GNU/Linux 中,等效的操作是:hwclock --hctosys

在 QNX Neutrino 中,命令是:rtc hw

windows winapi real-time-clock

5
推荐指数
0
解决办法
743
查看次数

有没有办法使用Windows读取RTC中存储的当前时间?

我正在寻找一种在 Windows 下运行时从主板查询当前 RTC 的方法。我正在寻找一个简单的未更改时间,因为它存储在硬件时钟中(没有漂移补偿,没有 NTP 时间同步,不是使用性能计数器继续使用的旧时间戳,...)。

我查看了Windows调用GetSystemTime、GetSystemTimeAdjustment、QueryInterruptTime、QueryPerformanceCounter、GetTickCount/GetTickCount64、GetLocalTime。我读到了有关 Windows 时间服务(并且我可以将其关闭)的信息,查看是否有一种方法可以使用旧的 DOS 方式(端口 70/71、INT 21h、INT 1Ah)访问 BIOS,查看了 WMI课程,...但我已经没有主意了。

据我了解,Windows会不时查询硬件时钟,并在偏差超过60秒时相应调整系统时间。这是没有 NTP 的情况。我发现的文档没有说明读取硬件时钟后会发生什么。必须使用另一个计时器来执行硬件读取之间的微计时。

由于我想得出有关时钟源漂移的结论,因此在向窗口询问“本地时间”并将其进度与任何高分辨率计时器(多媒体计时器、时间戳计数器...)进行比较时,这将击败所有推理。

有谁知道如何在 Windows 下运行时尽可能原始地获取当前存储在硬件时钟(RTC)中的时间?

windows time winapi bios real-time-clock

5
推荐指数
0
解决办法
1809
查看次数

在 MacOS(或 Linux)的笔记本电脑睡眠模式期间,如何调查哪个进程会导致唤醒?

我的 MacBook 在风扇活动频繁的情况下自发地从睡眠模式中唤醒。

我想在 RTC 或电源设置中对此进行调查吗?或者通过跟踪进程等(使用一些进程/内核魔法!)。

提示:它可能由“rtcwake”管理。

我什至不确定这是计划任务,还是来自 WiFi 唤醒,或其他什么。

我不想猜测通常在 Mojave 等中导致这种情况的原因。相反:我需要在我的 MacOS (Mojave) 上对此进行系统调查。与 Linux 相关的答案也很受欢迎。

这是关于系统待机、睡眠模式、暂停模式。(请注意,这与独立进程的启动和唤醒无关。整个笔记本电脑会自动开启。)

linux power-management standby real-time-clock macos-mojave

5
推荐指数
1
解决办法
1746
查看次数

stm32l4 RTC HAL无法正常工作

我在带有FreeRTOS的stm32L476上的RTC上有一个奇怪的行为。

它仅在RUN模式下第一次读取,RTC正在工作,因为从运行到运行,它保存了内部寄存器的值并且一直在上升。

另外,如果我在583行的stm32l4xx_hal_rtc.c处放置断点时进行调试,则:

tmpreg = (uint32_t)(hrtc->Instance->TR & RTC_TR_RESERVED_MASK);    
*breakpoint* sTime->Hours = (uint8_t)((tmpreg & (RTC_TR_HT | RTC_TR_HU)) >> 16);
Run Code Online (Sandbox Code Playgroud)

我可以看到tmpreg和TR寄存器如何更新,然后单击跳转到下一个断点时,显示的内容也相同。

那么,为什么在正常运行时它不起作用?

初始化代码(生成多维数据集MX):

void MX_RTC_Init(void)
{
  RTC_TimeTypeDef sTime;
  RTC_DateTypeDef sDate;

    /**Initialize RTC Only 
    */
  hrtc.Instance = RTC;
  hrtc.Init.HourFormat = RTC_HOURFORMAT_24;
  hrtc.Init.AsynchPrediv = 127;
  hrtc.Init.SynchPrediv = 255;
  hrtc.Init.OutPut = RTC_OUTPUT_DISABLE;
  hrtc.Init.OutPutRemap = RTC_OUTPUT_REMAP_NONE;
  hrtc.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;
  hrtc.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;
  if (HAL_RTC_Init(&hrtc) != HAL_OK)
  {
    _Error_Handler(__FILE__, __LINE__);
  }

    /**Initialize RTC and set the Time and Date 
    */
  if(HAL_RTCEx_BKUPRead(&hrtc, RTC_BKP_DR0) != 0x32F2){
  sTime.Hours = 0; …
Run Code Online (Sandbox Code Playgroud)

c hal stm32 freertos real-time-clock

4
推荐指数
2
解决办法
4694
查看次数

如何让msp430睡12秒?

什么是使MSP430进入睡眠状态10秒的最佳方法.速度不如低功耗那么重要.

msp430 real-time-clock

3
推荐指数
1
解决办法
785
查看次数