我和我的团队正在设计一个项目,需要检测方波的上升沿,然后使用time.time()在变量中存储时间。如果相同的方波被赋予3个不同的RPi引脚并且事件检测应用于每个引脚,理论上,它们应该同时发生,但是它们具有导致相位差异的延迟(我们从时间计算相位)。 我们得出结论,time.time()是一个缓慢的函数。 任何人都可以请帮助我使用哪个函数来获得SOC比time.time()更精确? 或者请为我提供函数time.time()后面的编程。 我会非常感激的。
答案 0 :(得分:0)
time.time
在支持它的平台上使用gettimeofday
。这意味着它的分辨率是以微秒为单位。
您可以尝试使用提供纳秒分辨率的time.clock_gettime(time.CLOCK_REALTIME)
(假设底层硬件/操作系统提供了这一点)。与time.time
一样,结果仍然会转换为浮点数。
还可以使用libc
模块加载clock_gettime
共享对象并调用本机ctypes
。这样,您就可以访问操作系统提供的实际纳秒数。 (尽管使用ctypes
有一个相当陡峭的学习曲线。)