Die Ausführung des Codes selbst scheint 0,2 Sekunden zu dauern, daher weiß ich, dass ich nicht schneller sein werde als das. Aber ich würde gerne genau steuern können, wie viel langsamer ich probiere.
Ich habe das Gefühl, ich könnte es mit „Sleep“ machen, aber das Problem ist, dass das so ist Möglicherweise dauert das Lesen der Schleife selbst an verschiedenen Stellen länger (abhängig davon, was genau über serielle Daten übertragen wird), sodass der Code den Rest ausgleichen müsste.
Nehmen wir zum Beispiel an, ich möchte alle 1 Sekunden abtasten, und die Schleife dauert Die Laufzeit liegt zwischen 0,2 und 0,3 Sekunden. Mein Code muss intelligent genug sein, um 0,8 Sekunden (wenn die Schleife 0,2 Sekunden dauert) oder 0,7 Sekunden (wenn die Schleife 0,3 Sekunden dauert) zu schlafen.
Code: Select all
import serial
import csv
import time
#open serial stream
while True:
#read and print a line
sample_value=ser.readline()
sample_time=time.time()-zero
sample_line=str(sample_time)+','+str(sample_value)
outfile.write(sample_line)
print 'time: ',sample_time,', value: ',sample_value