質問編集履歴

3

実験結果を追記2

2018/04/19 03:03

投稿

fenri
fenri

スコア11

test CHANGED
File without changes
test CHANGED
@@ -130,7 +130,7 @@
130
130
 
131
131
 
132
132
 
133
- ***追記 2018/04/19***
133
+ ***追記1 2018/04/19***
134
134
 
135
135
  以下のソースを追記した所
136
136
 
@@ -193,3 +193,29 @@
193
193
  出力結果
194
194
 
195
195
  cmd:@test/A
196
+
197
+
198
+
199
+
200
+
201
+ ***追記2 2018/04/19***
202
+
203
+ グローバル変数で結構な量を配列で定義していたものを一時的に減らした所
204
+
205
+ 正常動作することを確認しました。
206
+
207
+ どうもこの辺りがあやしいのかもしれません。
208
+
209
+
210
+
211
+ ちなみにその時のコンパイル後のメッセージは
212
+
213
+ 最大30720バイトのフラッシュメモリのうち、スケッチが19624バイト(63%)を使っています。
214
+
215
+ 最大2048バイトのRAMのうち、グローバル変数が1166バイト(56%)を使っていて、ローカル変数で882バイト使うことができます。
216
+
217
+ となっていました。
218
+
219
+
220
+
221
+ もうちょっと調べてみようと思います。

2

実験結果を追記

2018/04/19 03:03

投稿

fenri
fenri

スコア11

test CHANGED
File without changes
test CHANGED
@@ -125,3 +125,71 @@
125
125
  開発環境:Windows10 ArduinoIDE
126
126
 
127
127
  Arduino pro mini 3.3V 8MHz
128
+
129
+
130
+
131
+
132
+
133
+ ***追記 2018/04/19***
134
+
135
+ 以下のソースを追記した所
136
+
137
+ やはりStringの結果が返ってきていないように見えます。
138
+
139
+ 別のString変数 cmd に "@"、 str文字数、strの文字列、 "/A" を格納し
140
+
141
+ シリアルにて出力させてみたところ
142
+
143
+ strの文字数の部分のみ表示されませんでした。
144
+
145
+
146
+
147
+
148
+
149
+ ```c
150
+
151
+ ~略~
152
+
153
+ String cmd = "";
154
+
155
+ String str = "test";
156
+
157
+ String sLen = String( (int)str.length(), HEX);
158
+
159
+ if (sLen.length() == 1)
160
+
161
+ sLen = "0" + sLen;
162
+
163
+
164
+
165
+ Serial.print("sLen:");
166
+
167
+ Serial.println(sLen);
168
+
169
+ Serial.flush();
170
+
171
+
172
+
173
+ cmd += "@";
174
+
175
+ cmd += sLen;
176
+
177
+ cmd += str;
178
+
179
+ cmd += "/A";
180
+
181
+
182
+
183
+ debugSerial.print("cmd:");
184
+
185
+ debugSerial.println(cmd);
186
+
187
+ debugSerial.flush();
188
+
189
+ ```
190
+
191
+
192
+
193
+ 出力結果
194
+
195
+ cmd:@test/A

1

誤字修正

2018/04/19 00:58

投稿

fenri
fenri

スコア11

test CHANGED
File without changes
test CHANGED
@@ -9,6 +9,8 @@
9
9
 
10
10
 
11
11
  ```c
12
+
13
+ ~略~
12
14
 
13
15
  String str = "test";
14
16
 
@@ -30,15 +32,21 @@
30
32
 
31
33
 
32
34
 
33
- 上記を含んたプログラムを別のプログラムで動作させると正常に動作出来るのですが、
35
+ 上記プログラムを単体で動作させると正常に動作出来るのですが、
34
36
 
35
- 全く同じを今作成しているものに組み込むとString(val, base) の結果をprintしても何も表示されません。
37
+ 全く同じを今作成しているものに組み込むとString(val, base) の結果をprintしても何も表示されません。
38
+
39
+ (sLen:が出力される)
36
40
 
37
41
 
38
42
 
39
- またプログラム内の全く別のソースを一部削ると正常に動作することから
43
+ またsLenが何表示されないプログラム内の全く別のソースを一部削ると正常に動作しま
40
44
 
45
+ (sLen:04が出力される)
46
+
47
+
48
+
41
- メモリーリーク等を疑っているのですが
49
+ このことからメモリーリーク等を疑っているのですが
42
50
 
43
51
  何か確認できる方法はありますでしょうか。
44
52