[H8-ML(5779)] Re: C言語の基本でしょうが
From: "paku@kobe" <pakupaku@xxxxxxxxxxxxxxxxxx>
Date: 2006年01月27日(金)09時29分18秒
paku@kobeです。
ラーメンさんが書かれているように、レンジが狭いようであれば固定少数でいい
かと思います。おそらくPIDのパラメータは十進数で扱うと思いますので2の
n乗をかけてすべて整数に変換してH8で演算します。最後に少数に変換します。
たとえば、下4ビットを少数とすると乗数と被乗数に64を掛けます。
2.1×5.6であれば134×358=47972
掛け算をしたので少数点位置が4ビットシフトしたので4ビット右シフトします。
47972 > 749
実数に変換するには64で割ればよいので
749÷64=11.7となります。(制御ループのなかでは必要ありません)

割り算の場合は最初に被除数に64を掛けておきます。
2.1÷5.6であれば134÷358ですが
134×64÷358=24と演算します。
実数に変換するには64で割ればよいので
24÷64=0.38となります。

浮動少数演算は演算パッケージを導入して変数をfloat、doubleで宣言または型
変換すれば浮動小数で演算できます。ただ、かなり遅くなりますのでPIDの演
算であれば、ややこしいですが固定少数演算を推奨します。
スレッド概略
[5764(R)](起点)
 └[5776(U)]
   └[表示中]
     └[5781(1)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]