准确计时器使用python时间[在微秒级别]

时间:2017-03-20 11:17:53

标签: python time clock

我想创建每500毫秒运行一次的触发器,它应该不会随着时间的推移而漂移。 我运行此代码以在pyopengl中显示内容

def __init__(self):
    ...
    self.t_on = time.clock()
    ...
def display_gl(self):
    ...
    if (time.clock() - self.t_on) >= 0.500:
        self.t_on = time.clock()
        #do things
    ...

随着时间的推移,时钟正在漂移,我认为这是因为if条件在一段时间后正在赶上500毫秒的时刻。

有没有办法避免这种漂移问题?

解决
改变:

if (time.clock() - self.t_on) >= 0.500:
    self.t_on = time.clock()

为:

if (time.clock() - self.t_on) >= 0.500:
    self.t_on =time.clock() - ((time.clock() - self.t_on) - 0.500)

1 个答案:

答案 0 :(得分:0)

<强>解决
感谢Mayeul sgc
改变:

if (time.clock() - self.t_on) >= 0.500:
    self.t_on = time.clock()

为:

if (time.clock() - self.t_on) >= 0.500:
    self.t_on =time.clock() - ((time.clock() - self.t_on) - 0.500)