问题标签 [system-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 投票
2 回答
157 浏览

verilog - 实时 CPU 时钟与高频软件时钟

我很想了解在模拟器中生成软件时钟所使用的技术。我的机器的频率只有 ~2.4GHz,但我可以使用模拟器生成高达 500THz 的时钟(请参阅下面的系统 Verilog 片段)。

这个更高的频率只是软件错觉还是与 CPU 晶体振荡器有任何联系?

0 投票
2 回答
399 浏览

microchip - PIC32MX 系统时钟是预期值/谐波的一半

我最近在一家新公司开始工作,在那里进行 PIC32 编程的程序员现在已经不在了,我确实需要对他的 uC 代码进行故障排除。

他不喜欢 Microchip Harmony 配置器/框架,因此他只使用 Harmony 框架的外设库进行编码(这意味着他在代码中使用了很多 PLIB_* 函数,取自示例)。为此,他从 framework/system/devcon/src 中提取了 sys_devcon.c 和 sys_devcon.h 文件,并将该文件复制到项目的源代码中。

现在我的问题:下面你会看到 device.cfg。引脚 OSC1 和 OSC2 连接到主振荡器 (4MHz)。我们已经通过 LeCroy Teledyne(显示为 4MHz)对其进行测试,确认振荡器工作正常。通过文件给出的配置,系统时钟 (SYSCLK) 由 SYSPLL 派生。由于我的 IDIV 为 1,我的 MULT 为 18,而我的 ODIV 为 1,我希望 SYSCLK 以 72MHz (4/1*18/1=72) 运行。PBDIV 设置为 DIV_2(因此 PBCLK=SYSCLK/2 -> 36MHz)。REFCLK 预计以 6.4MHz 运行。

但是: 测量的 PBCLK 显示 18MHz,测量的 REFCLK(SYSPLL 作为 F_REFIN,显示 3.2MHz,这意味着 SYSCLK 仅运行 36MHz(不是预期的 72MHz)。但考虑到配置,一切都应该运行两倍快。我无法找到为什么 SYSCLK 以半速运行的问题。

我对代码中的每个 PLIB_OSC*(包括 PLIB_OSC_SLEW*)函数进行了故障排除,但没有发现一个问题(仅 5 行就可以使用某种 PLIB_OSC* 函数)。也许有人有一些想法/提示来解决问题。也不清楚 SYSCLK 是否实际上减半,或者 SYSPLL 之后是否有一些分频器(在 REFCLK 和 PBCLK 之间)。有什么方法可以测量 SYSCLK 吗?

uC:PIC32MX174F256B XC 版本:V2.10 Harmony:V2.05.01(仅使用 PLIB) MPLAB X IDE:v4.20

0 投票
1 回答
38 浏览

c++ - 查询时间/周期是对所有内核/线程的序列化还是并行请求?

假设有一个简单的“哪个线程首先完成循环”基准,

我们是否可以信任clock()或任何其他时间/时钟请求函数不会在线程之间序列化并始终保持独立,以便测量它不会改变线程完成工作的顺序?

如果整个 CPU 有一个时钟周期计数器,C++ 如何计算每个线程?如果多个线程同时查询它,它是否只是广播相同的数据?或者它是否将微操作中的操作序列化以一次服务一个线程?

上面的代码编译并给出了这个结果(用if(t1.joinable())and if(t2.joinable())):

这是否意味着线程 1 绝对首先完成,或者它实际上是稍后完成但首先要求它的时钟,以便线程 2 滞后?

不检查它们是否可加入:

0 投票
1 回答
371 浏览

virtual-machine - 比实时运行更快的虚拟机

我正在尝试以更快的速度运行二进制文件的实时执行,并假设 Virtual Box 可能有办法这样做,基于这个 10 年前的帖子

我需要模拟 Windows 10。这可能在任何虚拟机上吗?

0 投票
1 回答
350 浏览

spotify - 如何与 Spotify 服务器同步时钟?

我正在尝试使用 Spotify Web API(https://developer.spotify.com/documentation/web-api/reference/)为音乐创建很酷的可视化。

我正在尝试的是首先获取用户正在播放的内容,他们的进度,然后我也获取曲目分析。

可以在此端点上获取当前播放的歌曲:https ://developer.spotify.com/documentation/web-api/reference/player/get-the-users-currently-playing-track/

从回复中对我来说重要的东西基本上是这样的:

显然,在请求和我在应用程序中解析响应的时间之间经过了一段时间。所以计划是我以这种方式同步音乐:

这个理论很酷,但似乎服务器和我的系统之间的时钟不同步,因为我通常会得到像 -1638 这样的值来表示差异,这显然不好,因为这意味着我解析数据的时间比获取数据的时间早。

所以我的问题是,我有哪些选项可以将我的时钟同步到 Spotify 服务器?如果不可能,我必须有哪些选项才能正确同步音乐?我在 Spotify 文档中找不到任何内容,尽管它应该是可能的,因为已经有一些现有的应用程序可以做我想做的事情(例如:https ://www.kaleidosync.com/ )

0 投票
1 回答
260 浏览

c# - await Task.Delay of over 15 ms doesn't wait long enough

In troubleshooting a test that validated concurrency I discovered that some of our build machines (running in VMs) consistently report that tasks aren't waiting the full Task.Delay interval. To confirm, I wrote a test which creates a histogram of how many milliseconds from the requested delay it took.

On my machine, the results are as you'd expect:

But on the build machine, the test reports that all of the tasks completed before the requested delay was completed:

Here's the test / histogram generator:

The Task.Delay documentation says (emphasis added):

This method depends on the system clock. This means that the time delay will approximately equal the resolution of the system clock if the delay argument is less than the resolution of the system clock, which is approximately 15 milliseconds on Windows systems.

In this case, I have ensured that the delay is not less than the 15 ms referred to above, and I've used the Stopwatch class to ensure the timings are as precise as possible. In addition, Stopwatch.IsHighResolution returns true, so I should be able to trust the timings.

I have been operating under the presumption that the delay will always be at least the requested time, but could be longer by the resolution of the system clock. Should I infer instead that the delay will always be within the (system clock resolution) or roughly 15ms on Windows? Or, is something else going on?

0 投票
2 回答
317 浏览

c# - Thread.Sleep 现在是使用高分辨率计时器还是 Windows 10 更改了默认系统时钟频率?

Thread.Sleep过去与系统时钟相关联,该系统时钟以大约 16 毫秒的间隔计时,因此任何低于 16 毫秒的时间都会产生 16 毫秒的睡眠。这种行为似乎已经在某种程度上改变了。

发生了什么变化?Thread.Sleep不再与系统时钟相关,而是与高分辨率计时器相关联?还是在 Windows 10 中增加了默认系统时钟频率?

编辑:似乎人们有兴趣知道我为什么使用 Thread.Sleep,它实际上超出了问题的范围,问题是为什么行为发生了变化。但无论如何,我注意到我的开源项目 freepie 的变化https://andersmalmgren.github.io/FreePIE/

它是一个输入/输出模拟器,由最终用户使用 Iron python 控制。那在后台运行。它没有自然中断。所以我需要编组脚本线程,这样它就不会饿死整个核心。

0 投票
0 回答
122 浏览

c++ - std::condition_variable 对系统时钟敏感

我有一些使用条件变量的代码。当系统时钟向后设置时,condition_variable 将等待更长的时间,因为它使用 system_clock 而不是 stable_clock。我已经看到这里发布了一些针对此问题的解决方法。这是以前的线程如何在等待 std::condition_variable 时处理系统时钟变化? 没有一种解决方法看起来特别优雅。就我而言,我正在为嵌入式 linux 系统进行交叉编译。我考虑通过将 condition_variable 包含文件移动到我的项目中并将其更改为使用 chrono::steady_clock 而不是 chrono::system_clock 来解决问题。我不喜欢更改系统包含文件。两个问题: 1、condition_variable 使用system_clock 有原因吗?为什么在标准包含中使用 system_clock?在我看来,将标准包括更改为使用 stable_clock 不会破坏任何代码。2. 有人有更好的建议吗?

0 投票
1 回答
150 浏览

c++ - 任何人都可以澄清一下:在 C++ 中的线程之间是否可靠稳定时钟

谁能确认(或否认) stable_clock 在线程之间是否“值得信赖”?根据文章Is the epoch of stable_clock relative to when the operating system startup? 还是流程本身?,有一些关于 stable_clock 在系统级别,进程之间是否值得信赖的讨论。我的问题是,线程之间的 stable_clock 至少值得信赖吗?

0 投票
1 回答
412 浏览

python - AttributeError:模块“apscheduler.schedulers.asyncio”没有属性“get_event_loop”

我正在尝试实现在 Heroku dyno 中使用的时钟过程。我正在使用 Python 3.6。时钟进程将每 3 小时运行一次。这是代码:

起初我尝试过

但是,我读到这在 python 3.6 中不受支持,所以我将此语句更改为run_until_complete.

如果我运行这个例子,代码会打印出来:

AttributeError:模块“apscheduler.schedulers.asyncio”没有属性“get_event_loop”

有谁知道为什么会发生这个错误?任何帮助将非常感激。提前致谢!