Closed YazawaKenichi closed 1 year ago
section_length_buffer_global_left と section_length_buffer_global_right を初期化する関数を作り、名前を section_length_buffer_reset() とした。
section_length_buffer_reset() を section_length_start() で呼び出すようにした。
よくよく考えてみれば、section_length_buffer_global が初期化されていなかったら、最初スタート直後に、section_length_read() の値はゼロになっていないはず。
今回は 0.3 を示してほしいのに 0.22 になっているということはスタート直後に -0.8 くらいを示すはず。
しかしスタート直後、タイヤを動かしていない状態ではゼロを示しているため、和演算の問題ではなく、積演算に問題がありそう。
length_read() を printf してみた。
既に間違っている
sampling_time_s が間違っているというわけでもなさそう
tim10_main()
でのみ呼び出されている。
tim10_main()
は 1 [ ms ]
周期で実行される。
length.c
> length_update()
でのみ呼び出されている。
m / s
なんかいろいろ考えたけど最終的にタイヤの直径を誤魔化すことにした
TIRDIAMETER = 21000 //! タイヤ径真値
ERROR -7250 //! エラー量
(TIRDIAMETER - ERROR) //! 誤魔化されたタイヤの直径
問題の内容
section_length_read() を printf したところ、0.30 m になるはずが 0.22 m になっている
実行環境
再現手順
予想される原因
予想が正しいことの確認方法
修正すべき内容
修正する際の注意点
参考になりそうなサイト