Micropython time.time_ns() 具有 1 秒的分辨率?

问题描述 投票:0回答:1

我目前正在学习在基于 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() 是较小时间分辨率的答案。

我有两个问题:

  1. time.time_ns() 中的 1 秒分辨率是 RPI2040 还是 Micropython 的问题?

  2. 如果开发人员不比 time.time() 更好,为什么还要创建 time_ns() 方法?这是非常误导性的,对任何人都没有用。

time micropython raspberry-pi-pico
1个回答
0
投票

我认为你是对的。目前 micropython 在 time.time_ns() 中有 1 秒的分辨率。只需检查此提交 10702

© www.soinside.com 2019 - 2024. All rights reserved.