我想在python中创建csv文件,存储来自传感器的数据加上读数的时间戳。但传感器测量速度快,我需要在1秒后准确地从传感器进行1次测量。例如传感器值为20时12:34:15。我需要在12:34:16准确值。我不必使用time.sleep因为它会产生超过秒的延迟,并且如果我必须读取超过100的读数将影响日志文件。
答案 0 :(得分:0)
消费者PC没有实时操作系统,并且无法保证特定进程每秒至少执行一次,当然也无法保证每隔1秒执行一次。如果您希望使用Python进行精确定时测量,则应该在微控制器板上执行Micropython。它可能能够做你想要的。 Raspberry Pi板上的Python也可能比PC更好。
在常规PC上,我会先使用perf_counter开始。
from time import perf_counter as timer
from somewhere import sensor, save # read temperature, save value
t0 = t1 = timer()
delta = .99999 # adjust by experiment to average 1 sec reading intervals
while True:
while t1 - t0 < delta:
t1 = timer()
value = sensor())
save(value)
t0 = t1