我目前正在尝试每 10 毫秒调用一次函数来从传感器获取数据。
基本上我是从 gpio 中断触发回调,但我更换了传感器,而我目前使用的传感器没有 INT 引脚来驱动回调。
所以我的目标是具有相同的行为,但具有由计时器生成的内部中断。
我从这个主题尝试了这个
import threading
def work ():
threading.Timer(0.25, work).start ()
print(time.time())
print "stackoverflow"
work ()
但是当我运行它时,我可以看到计时器并不是很精确,并且它随着时间的推移而推导,正如你所看到的。
1494418413.1584847
stackoverflow
1494418413.1686869
stackoverflow
1494418413.1788757
stackoverflow
1494418413.1890721
stackoverflow
1494418413.1992736
stackoverflow
1494418413.2094712
stackoverflow
1494418413.2196639
stackoverflow
1494418413.2298684
stackoverflow
1494418413.2400634
stackoverflow
1494418413.2502584
stackoverflow
1494418413.2604961
stackoverflow
1494418413.270702
stackoverflow
1494418413.2808678
stackoverflow
1494418413.2910736
stackoverflow
1494418413.301277
stackoverflow
所以计时器每 10 毫秒推导 0.2 毫秒,这在几秒钟后是一个很大的偏差。
我知道 python 并不是真正为“实时”而设计的,但我认为应该有办法做到这一点。
如果有人已经不得不用 python 处理时间限制,我很乐意得到一些建议。
谢谢。