问题:time.sleep误差较大。
试验:定时器100ms,验证误差。
方法一:使用time.sleep的情况:
import time
avg = 0
for index in range(0,50):
start = time.time() #可精确到0.1us
time.sleep(0.1)
end = time.time()
dif = (end - start)*pow(10,7)/10000 - 100
avg = avg + dif
print(avg/50)
在windows平台,误差结果为:8.8ms
方法二:自己编写定时器
import time
#延迟tms定时器
def delayMsecond(t):
start,end = 0,0
start = time.time_ns() #精确至ns级别
while(end - start < t* 1000000):
end = time.time_ns()
avg = 0
for index in range(0,50):
start = time.time() #可精确到0.1us
delayMsecond(100)
end = time.time()
dif = (end - start)*pow(10,7)/10000 - 100
avg = avg + dif
print(avg/50)
测试结果:在windows平台误差为0.9ms,完胜time.sleep。