我目前正在学习在基于 RPI2040 的主板上使用 Micropython。 在此过程中,我注意到时间模块出现了意外行为。 我写了一个简单的循环,每半秒打印一次 ns 的时间
import time
while True:
print(time.time_ns())
time.sleep(0.5)
这给了我以下输出
1713442861000000000
1713442861000000000
1713442862000000000
1713442862000000000
1713442863000000000
1713442863000000000
看起来 time.time_ns() 实际上与 time.time() 做同样的事情(只给出完整的秒),但末尾有 9 个零。我还发现 this post 指出了 Rpi Pico(也基于 RPI2040 构建)上的相同问题,并且 meuh 的答案似乎表明 time.ticks_us() 是较小时间分辨率的答案。
我有两个问题:
time.time_ns() 中的 1 秒分辨率是 RPI2040 还是 Micropython 的问题?
如果开发人员不比 time.time() 更好,为什么还要创建 time_ns() 方法?这是非常误导性的,对任何人都没有用。
我认为你是对的。目前 micropython 在 time.time_ns() 中有 1 秒的分辨率。只需检查此提交 10702