私は現在、センサーからデータを取得するために 10ms ごとに関数を呼び出そうとしています。
基本的に、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 で時間の制約を処理しなければならない場合は、アドバイスをいただければ幸いです。
ありがとう。