2018年5月20日日曜日

SH7125でsqrtを動かしたかったけどできなかった話

れぽーよに追われ、何もできてない中の人です。(テストが迫ってきたぁぁぁぁぁあああ)

少し前にSH7125でsqrt関数を動かそうとして詰まったのでその話をします。





0.要約
SH7125上でsqrt関数を動かすことは、
とてつもなく重い(中の人の感想です。個人差があります。)

1.何がしたかったか
今となってはよくわからないが、とりあえず何かの距離とか速度を算出したかったらしい。

2.どこに実装したか
最初は1[ms]の割り込み関数の内部で、次は車体を動かす距離を決める関数で。

3.結果
どちらも計算が追い付かず、モータは正常に動作しませんでした。
割り込み内部で実行したときは1[ms]以内に計算が出来なかったのであっさり轟沈しました。もう一つの時は、車体速度が上がるとうまくモータが回らなくなっていきました。

4.もしsqrtを使いたくなってしまったら
どうしてもsqrtを使いたいそこのあなたにこんな情報を差し上げます。
車体速度を上げた時のパルス周期から、SH7125だとsqrtの実行には3[ms]ぐらいを見積もったほうが良いことが判明しました。
(CPUのクロック数を50[MHz]した時の値。1[ms]で割り込みを走らせ、迷路探索アルゴリズムを走らせながら実行する条件だったので、単純な実行時間ではないことにご注意。)
本当にsqrtが必要かどうか、もう一度検討しましょう。後戻りできるうちに...


©2018 shts All Right Reserved.

0 件のコメント:

コメントを投稿