2017-07-28 11 views
0

データとUartデータがここに追加されました。本当に何が問題なのか理解できません。データ型、値、プリントを変更するときに、2つの整数の乗算が間違った値を返す(ATMEL ATmega32A)

私はUSBaspによってプログラムされたATmega32Aを使用しています。

コードは次のとおりです。 https://hastebin.com/soqexihoni.cs ここはUART Comです。ログ: https://hastebin.com/muwekuniva.hs

別のバージョン私は変数のデータ型を変更します。 しかし、唯一の 'TEMP' 変数changed.I問題がまだ点灯しit.But読むことができる... "TEMP =(5つの*データ* 100)/ 1024;" ..任意の論理結果を与えるものではありません

すべてのコメントありがとう

答えて

0

データタイプとコードの書き方には注意が必要です。 コード(5*data*100)/1024は整数で演算を実行した後、tempがfloatであるためfloatで変換します。

あなたのような何かを試みることができる:

temp = ((float)5 * (float)data * (float)100)/(float)1024; 

それはすべての変数をキャストするために、トップの上にあるかもしれないが、それが原則ですが。

+0

ありがとうございました。できます :) –

関連する問題