草庐IT

定时钟

全部标签

c++ - 每 N 秒执行一次与 Windows 系统时钟同步的操作

有很多关于如何每N秒执行某项操作的提示,但我没有发现任何内容明确说明这些方法中的任何一个是否由于延迟而慢慢地与系统时钟不同步。我有一个在Windows上运行的多线程应用程序。我需要知道在更高优先级任务和线程允许的尽可能少的毫秒内,一个特定线程将根据系统时钟在“精确”凌晨1点可靠地执行,然后在凌晨1点+N秒、凌晨1点+2N秒等。..并在晚上11点、晚上11点+N、晚上11点+2N之前一直可靠地执行此操作,依此类推。是的-情况(无论如何对我来说)每小时有整数个N秒周期。我完全希望线程执行的实际时间为1am+d1、1am+N+d2、1am+2N+d3,...其中每个d(i)都是一些延迟增量。

c# - Windows窗体中的定时器运行状态

在WindowsForms中,如何判断定时器是在运行还是停止? 最佳答案 检查theEnabledpropertyoftheTimerclass. 关于c#-Windows窗体中的定时器运行状态,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2757436/

c# - 即使我更改了主机上的时钟,也能获得真实的 DateTime (c#)

我想为一个应用程序生成一个序列号(只在一段时间内使用),这个序列号是基于时间的,所以如果改变我电脑的时钟时间,这将是不必要的代码所以我问你是否有可能获得真正的DateTime,即使我使用C#更改计算机上的时间?(我假设用户没有互联网连接) 最佳答案 amaskingyouifisthereanypossibilitytogettherealDateTimeevenifichangestimeonmycomputerusingC#?(Iassumethattheuserdoesnothaveaninternetconnection)没

c - Windows 上的定时器和 sleep

我正在尝试将一些使用nanosleep()和get_clocktime()的linux代码移植到Windows。据我所知,Windows上确实没有那么多性能计时器,并且除了Sleep()之外没有真正的sleep功能。我在Windows上找到了QueryPerformanceCounter和QueryPerformanceFrequency,但我该如何调整它们以使用快速sleep功能。我尝试移植的代码位于这篇StackOverflow帖子中:https://stackoverflow.com/a/13559213/1161270总的来说,我正在尝试将linux代码移植到使用nanosle

c++ - 如何获取WM_TIMER 的独占定时器ID?

我子类化了一个控件,控件本身有wm_timer。我需要为我的代码创建一个计时器,我怎样才能为我的代码获取一个独有的计时器ID? 最佳答案 不幸的是,你只能得到SetTimer当HWND为空时创建一个新ID。如果您想要一个独特的计时器,您需要使用不带HWND的SetTimer,在这种情况下,计时器消息会直接发布到您的计时器过程。要将计时器消息发送到子类窗口,您只需选择一个您希望唯一的计时器ID。 关于c++-如何获取WM_TIMER的独占定时器ID?,我们在StackOverflow上找到

STM32定时器输入捕获

STM32定时器输入捕获用STM32F429做定时器捕获PWM波形,测出波形的周期、频率以及占空比、正向脉宽。基本原理定时器的输入捕获主要是为了测量输入信号的频率,脉宽,占空比等信息。需要理解stm32定时器的基本结构主要理解这些框起来的是重点,都是本人自己的理解,才疏学浅,万一有理解错的还望指正。至于上半部分的时钟没有太难理解的。下面的通道理解上才比较复杂。首先一个通用定时器有4个输入通道4个通道,这些通道可以空着也可以复用到对应的GPIO上去,/* 可以输出到GPIO的TIM通道: TIM1_CH1,PA8, PE9, TIM1_CH2,PA9, PE11 TIM1_CH3,PA10, P

c - 在 Windows 上安装定时器/时钟 ISR - 单线程环境中的异步调用

我正在改进一些代码,这些代码模拟了x86Windows系统上的上下文切换调度程序。该程序使用一些古老的BorlandC编译器在WindowsXP(编辑:可能不是Windows7)上编译,并且正在移植为MSVC可编译。有一次,代码通过dos.h中的这些不可用函数安装ISR:void(*)()getvect(int)voidsetvect(int,void(*)());具体来说,代码为(循环)定时器中断安装了一个ISR。这些电话是:tick_isr_old=getvect(0x08);setvect(0xF2,tick_isr_old);setvect(0x08,(voidinterrup

windows - 具有可变时钟速度的多核系统中的 QueryPerformance 计数器

根据MSDN文章GameTimingandMulticoreProcessors,QueryPerformanceFrequency()和QueryPerformanceCounter()函数据说是最好的。但如果不支持它,我可以使用timeGetTime()或仅使用GetTickCount()。QueryPerformanceFrequency()是否与CPU时钟相同,或者它是否使用自己的时钟或具有自己的频率且不随时间变化的时钟?如果频率随时间随机变化怎么办(尤其是在笔记本电脑中)如何使用SetThreadAffinityMask函数?(我看到的一些代码使用该函数将其更改为“1”,然后

c++ - 高精度事件定时器

#include"target.h"#include"xcp.h"#include"LocatedVars.h"#include"osek.h"/***Thistaskisactivatedevery10ms.*/longOSTICKDURATION;TASK(Task10ms){voidXCP_FN_TYPEXcp_CmdProcessor(void);uint32startTime=GetQueryPerformanceCounter();/*TriggerDAQforthe10msXCPraster.*/if(XCPEVENT_DAQ_OVERLOAD&Xcp_DoDaqForE

c++ - 用于定期调用的现代高分辨率定时器

关于stackoverflow上的高分辨率计时器已经有大量讨论。但很明显,解决方案是一个移动的目标,最佳实践也在发生变化。我需要创建一个高分辨率计时器,每10毫秒回调一次,以实现一致的100Hz。目标平台是Windows7及更高版本。这exactquestionwasaskedin2009,但我相信事情可能已经发生了变化。多媒体计时器看起来是一个很好的解决方案,但MSDN说它们是depreciated,替换为CreateTimerQueueTimer。但是stackoverflow上的其他答案表明CreateTimerQueue计时器不如timeSetEvent准确。所有答案都一致指出