我正在尝试以精确的频率通过采集卡测量电压,而我找不到有效的工具来强制我的循环以所述频率运行。
现在我有这样的事情:
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时间上很昂贵,因为等待循环非常快,但我不知道如何改进它。非常感谢任何改善这些问题中的一个(或两个)的想法。