[Python] Precisione di time.time()

Listemessaggi CoPlast listemessaggi a coplast.eu
Ven 22 Ago 2008 17:18:12 CEST


Un saluto a tutti.
Avete idea di quale potrebbe essere la precisione della suddetta funzione?
Avrei bisogno di misurare in continuo tempi molto piccoli (decimi di 
millisecondo), secondo voi si puņ fare?
Devo per forza usare un kernel con patch RTAI e software scritto in C e 
poi usato da python (con swig)? Sto provando quest'ultima strada ma per 
le mie competenze la vedo dura. Vorrei usare solo python se esistesse 
una soluzione al problema.

Grazie in anticipo per i consigli.


Matteo.


P.S. Riporto di seguito il codice che sto usando per fare questi test.



import time

def adesso():
    return time.time() * 1E9

def aspetta(vel = 0):
    if vel == 0:
        time.sleep(0.0001)
    elif vel == 1:
        pass

delta_pausa = []

def calibra_timer():
    for i in range(2):
        inizio = adesso()
        aspetta(i)
        fine = adesso()
        delta_pausa.append(fine - inizio)

def pausa(t):
    inizio = adesso()
    def step(va):
        aspetta(va)
        fine = adesso()
        return fine
    va = 1
    fine = step(va)
    while t > fine - inizio:
        fine = step(va)
        if t - (fine - inizio) > 1.25 * delta_pausa[0]:
            va = 0
        else:
            va = 1


 
def inizializzazione():
    calibra_timer()
    #num_io = 24
    #for i in range(num_io):
    #   io.append(0)

inizializzazione()

inizio = adesso()
pausa(1.234567891 * 1E9 * 10)
fine = adesso()
print fine - inizio

inizio = adesso()
for i in range (1000):
    pausa(1.234567891 * 1E9 * 0.01)
fine = adesso()
print fine - inizio


Maggiori informazioni sulla lista Python