回答編集履歴
5
質問の追記を受けて更に追記
test
CHANGED
@@ -99,3 +99,25 @@
|
|
99
99
|
|
100
100
|
|
101
101
|
ご提示のコードですと`Serial.println`を実行したときに出力されるべき文字列の先頭の方がデータが欠けている様子なので、シリアル出力の立ち上がりに問題が出ているようにも思えます。通信速度を下げると改善するかも、です。(これもあくまで「可能性としてあるかも?」程度の思い付きの意見です)
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
---
|
106
|
+
|
107
|
+
**質問の追記2を受けて更に追記:**2018/04/19 12:34
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
ローカル変数の領域が残り882バイトですと、スタック領域としてかなり切迫していると思います。
|
112
|
+
|
113
|
+
(まぁ、RAMが2048バイトなら仕方が無いですが)
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
どこか、自作のコード部分でメモリを破壊している可能性が高いように思います。
|
118
|
+
|
119
|
+
`String`オブジェクトのメモリリークと言うよりは、`String`オブジェクトは恐らく被害者かと。
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
自作の関数の呼び出しが深くなっていないか、自作の関数の中でローカル(auto)変数を無駄に多く使っていないかなどをチェックして、スタックをなるべく使わないよう工夫してみてください。
|
4
脱字修正
test
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
|
20
20
|
|
21
|
-
下のコードは、自作の`printOneByOne`関数で`String`オブジェクトの文字列をひとつずつ出力する例です。通信速度は9.600bpsにして、1文字ずつ、`Serial.flush`して100ミリ秒待機もさせています。これくらいやればくらなんでも通信用チップの送信用FIFOバッファがあふれるようなことも無いでしょう。
|
21
|
+
下のコードは、自作の`printOneByOne`関数で`String`オブジェクトの文字列をひとつずつ出力する例です。通信速度は9.600bpsにして、1文字ずつ、`Serial.flush`して100ミリ秒待機もさせています。これくらいやればいくらなんでも通信用チップの送信用FIFOバッファがあふれるようなことも無いでしょう。
|
22
22
|
|
23
23
|
```C++
|
24
24
|
|
3
表示がおかしいので修正
test
CHANGED
@@ -86,6 +86,8 @@
|
|
86
86
|
|
87
87
|
ご参考まで。
|
88
88
|
|
89
|
+
|
90
|
+
|
89
91
|
---
|
90
92
|
|
91
93
|
**追記しました:** 2018/04/18 11:24
|
2
補足を追記
test
CHANGED
@@ -85,3 +85,15 @@
|
|
85
85
|
|
86
86
|
|
87
87
|
ご参考まで。
|
88
|
+
|
89
|
+
---
|
90
|
+
|
91
|
+
**追記しました:** 2018/04/18 11:24
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
回答した後に質問を見直して気がつきましたが、お使いのものは「Arduino pro mini 3.3V 8MHz」とのことで低電圧で電源供給能力が少し弱いのかもしれません。周辺のハードウェアを色々付けていると影響が無いとも言えません。
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
ご提示のコードですと`Serial.println`を実行したときに出力されるべき文字列の先頭の方がデータが欠けている様子なので、シリアル出力の立ち上がりに問題が出ているようにも思えます。通信速度を下げると改善するかも、です。(これもあくまで「可能性としてあるかも?」程度の思い付きの意見です)
|
1
誤字修正
test
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
|
20
20
|
|
21
|
-
下のコードは、自作のprintOneBy
|
21
|
+
下のコードは、自作の`printOneByOne`関数で`String`オブジェクトの文字列をひとつずつ出力する例です。通信速度は9.600bpsにして、1文字ずつ、`Serial.flush`して100ミリ秒待機もさせています。これくらいやればくらなんでも通信用チップの送信用FIFOバッファがあふれるようなことも無いでしょう。
|
22
22
|
|
23
23
|
```C++
|
24
24
|
|