質問編集履歴
2
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
Serial.println(f*k*s);
|
15
15
|
```
|
16
16
|
|
17
|
-
uint32_tもfloatも4バイトなのでキャストすれば出力されるのではと考えましたが、表示されませんでした。
|
17
|
+
uint32_tもfloatも4バイトなのでキャストすれば出力されるのではと考えましたが、4バイトのデータに.00が記載されるだけの表示となり、正常に表示されませんでした。
|
18
18
|
```
|
19
19
|
uint32_t temp32;//データ
|
20
20
|
/*
|
@@ -23,6 +23,7 @@
|
|
23
23
|
|
24
24
|
Serial.println((float)temp32);
|
25
25
|
```
|
26
|
+
|
26
27
|
良い方法があれば教えて頂けませんでしょうか。
|
27
28
|
|
28
29
|
以上、宜しくお願い致します。
|
1
説明を具体的に変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,14 +1,28 @@
|
|
1
|
-
現在Spresenseを用いてArduino IDEで
|
1
|
+
現在Spresenseを用いてArduino IDEでセンサから出力される2バイトx2のデータを取得し結合して4バイト(32bit)にしたものを10進数で表示しようとしています。4バイトのデータは単精度浮動小数点の形式で出力されているので小数点を含む10進数でデータを表示したいです。
|
2
2
|
データ取得はできたのですが、小数で表示しようとしてもデータが0.00となってしまいます。
|
3
3
|
コードは以下です。
|
4
4
|
|
5
5
|
```
|
6
|
+
uint32_t temp32;//データ
|
7
|
+
/*
|
8
|
+
データ取得の操作、省略
|
9
|
+
*/
|
10
|
+
|
6
11
|
int8_t f = pow(-1, (int)(temp32 >> 31));
|
7
12
|
double k = 1 + (double)(((temp32 & 0x7FFFFF))/pow(2,23));
|
8
13
|
float s = (float)pow(2,(int8_t)((uint8_t)(((temp32 >> 23) & 0xFF)-127)));
|
9
14
|
Serial.println(f*k*s);
|
10
15
|
```
|
11
16
|
|
17
|
+
uint32_tもfloatも4バイトなのでキャストすれば出力されるのではと考えましたが、表示されませんでした。
|
18
|
+
```
|
19
|
+
uint32_t temp32;//データ
|
20
|
+
/*
|
21
|
+
データ取得の操作、省略
|
22
|
+
*/
|
23
|
+
|
24
|
+
Serial.println((float)temp32);
|
25
|
+
```
|
12
26
|
良い方法があれば教えて頂けませんでしょうか。
|
13
27
|
|
14
28
|
以上、宜しくお願い致します。
|