現在Spresenseを用いてArduino IDEでセンサから出力される2バイトx2のデータを取得し結合して4バイト(32bit)にしたものを10進数で表示しようとしています。4バイトのデータは単精度浮動小数点の形式で出力されているので小数点を含む10進数でデータを表示したいです。
データ取得はできたのですが、小数で表示しようとしてもデータが0.00となってしまいます。
コードは以下です。
uint32_t temp32;//データ /* データ取得の操作、省略 */ int8_t f = pow(-1, (int)(temp32 >> 31)); double k = 1 + (double)(((temp32 & 0x7FFFFF))/pow(2,23)); float s = (float)pow(2,(int8_t)((uint8_t)(((temp32 >> 23) & 0xFF)-127))); Serial.println(f*k*s);
uint32_tもfloatも4バイトなのでキャストすれば出力されるのではと考えましたが、4バイトのデータに.00が記載されるだけの表示となり、正常に表示されませんでした。
uint32_t temp32;//データ /* データ取得の操作、省略 */ Serial.println((float)temp32);
良い方法があれば教えて頂けませんでしょうか。
以上、宜しくお願い致します。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/02/13 02:45