正确执行预定义的循环时间

时间:2015-09-24 09:27:25

标签: python python-2.7 infinite-loop frequency

我正在尝试以精确的频率通过采集卡测量电压,而我找不到有效的工具来强制我的循环以所述频率运行。

现在我有这样的事情:

import time

def get_data(frequency):
    last_t=time.time()
    while True:
       while (time.time()-last_t)<(1./frequency): # waiting loop
           time.sleep(1./(100*frequency)) # wait for 1/100 of the desired loop time
       last_t=time.time()
       data=sensor.acquire()
       # do stuff with the data

1 /这不是很精确,因为它只强制频率不会高于所需频率(但可能会低得多)。

2 /这在CPU时间上很昂贵,因为等待循环非常快,但我不知道如何改进它。

非常感谢任何改善这些问题中的一个(或两个)的想法。

0 个答案:

没有答案