一个带微秒计时器的时钟
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个带微秒计时器的时钟相关的知识,希望对你有一定的参考价值。
我正在尝试在python上创建一个微秒计时器。目标是每微秒都有一个“滴答”。
我目前的做法是:
us = list()
while len(us) <= 1000:
t = time.time()*1000000
if t.is_integer():
us.append(t)
它表明,我不知道在时间方面存在明显的局限性。
656的第一个值是1532960518213592.0
。 while循环以“相同”微秒执行。然后价值跳转到1532960518217613.0
。最大分辨率似乎是4021 us。
我怎样才能克服这些限制?
编辑:关于此测量。
带有YouTube视频的Chrome正在后台运行。 + Outlook,团队,Adobe和其他一些东西。 CPU是i5-5200U CPU @ 2.20 GHz(2核)。
问题是当前时间是操作系统提供的功能,因此它在不同系统上会有不同的行为,无论是在时钟精度方面还是在轮询频率方面。还要记住,您的程序可以暂停,并由操作系统的调度程序执行。
以下是代码的简化版本:
[time.time() * 10**6 for i in range(1000)]
在我的本地计算机(Windows Ubuntu子系统)上,这会生成以下内容(请注意它大约每秒一个有间隙):
[1532961190053186.0, 1532961190053189.0, 1532961190053190.0, 1532961190053191.0, 1532961190053192.0, 1532961190053193.0, 1532961190053194.0, 1532961190053195.0, 1532961190053196.0, 1532961190053198.0, ...]
在服务器(Ubuntu)上,这会产生以下内容(注意多次发生的同一时间):
[1532961559708196.0, 1532961559708198.0, 1532961559708199.0, 1532961559708199.0, 1532961559708199.0, 1532961559708200.0, 1532961559708200.0, 1532961559708200.0, 1532961559708200.0, 1532961559708201.0, ...]
以上是关于一个带微秒计时器的时钟的主要内容,如果未能解决你的问题,请参考以下文章
embOS推出一个RTOS的革命性功能,支持微秒和CPU时钟周期级分辨率的任务调度和API延迟参数设置
embOS推出一个RTOS的革命性功能,支持微秒和CPU时钟周期级分辨率的任务调度和API延迟参数设置
在SysTick微秒及毫秒程序举例中,定时器一次最大定时时间是多少毫秒?