Thanks. Reading more, the sleep module is supposed to do that. Using a script from a link above,
Code:
#!/usr/bin/python3
import time
# measure the smallest time delta by spinning until the time changes
def measure():
t0 = time.time()
t1 = t0
while t1 == t0:
t1 = time.time()
return t1-t0
samples = [measure() for i in range(30)]
for s in samples:
print(f'time delta: {s:.6f} seconds')
I can see that it is rather precise:
Code:
time delta: 0.000003 seconds
time delta: 0.000001 seconds
time delta: 0.000001 seconds
time delta: 0.000001 seconds
time delta: 0.000001 seconds
time delta: 0.000001 seconds
time delta: 0.000001 seconds
time delta: 0.000001 seconds
time delta: 0.000001 seconds
time delta: 0.000001 seconds
time delta: 0.000001 seconds
time delta: 0.000001 seconds
time delta: 0.000001 seconds
time delta: 0.000001 seconds
time delta: 0.000001 seconds
time delta: 0.000002 seconds
time delta: 0.000001 seconds
time delta: 0.000001 seconds
time delta: 0.000001 seconds
time delta: 0.000001 seconds
time delta: 0.000001 seconds
time delta: 0.000001 seconds
time delta: 0.000001 seconds
time delta: 0.000002 seconds
time delta: 0.000001 seconds
time delta: 0.000001 seconds
time delta: 0.000001 seconds
time delta: 0.000001 seconds
time delta: 0.000001 seconds
time delta: 0.000001 seconds
I had expected a software problem but it looks like the trouble may lie with a peripheral device which responds sluggishly.