Closed karubehub closed 2 years ago
raspi側EV3RTの方の不具合のようです。前からタイマーが1/2くらいで動作している感じがしていたのですが、あまり深く追えていませんでした。カーネルの中身を見ながら調査していますので、お待ちください。
ターゲット依存部の現在時刻を返す部分が、差分を使って現在時刻をだしていて、それが誤差を大きくしていました。 clock_gettime()でとった値を使うように変更しました。 30秒で大体30.2秒くらいで返るようになりました。 これくらいであれば誤差かと思うので、これで試してもらえますか。
tslp_tsk() に設定した時間で、制御できることを確認しました。
tslp_tsk()に設定した時間に比べて、 早い時間で、スリープ時間が終わってしまうと思います。
単純に、モーターを30秒回すプログラムなのですが、 18秒程度で、モーターが止まってしまいます。
また、SPIKE側のプログラムを起動し直さないと、 動く時間が短くなっていきます。 sample_00_spike.zip