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