1

Arduino に Web サーバーがあり、一部のデータをEEPROMに保存するためのフォームをレンダリングする必要があります。HTMLデータには約1500文字があります。現時点では、私のコードは次のようになります。

[...]
  serverClient.println("HTTP/1.1 200 OK");
  serverClient.println("Content-Type: text/html");
  serverClient.println("Connnection: close");
  serverClient.println();
  serverClient.println("<!DOCTYPE html>");
[...]

次のようなキーワードPROGMEMを使用してデータを保存することについて読みました。F

[...]
  serverClient.println(F("HTTP/1.1 200 OK"));
  serverClient.println(F("Content-Type: text/html"));
  serverClient.println(F("Connnection: close"));
  serverClient.println();
  serverClient.println(F("<!DOCTYPE html>"));
[...]

ただし、これにはより多くのフラッシュメモリが必要です。

2番目の方法を使用する利点はありますか? または、より良い解決策はありますか?

( SDカードにデータを保存することはできません。)

4

1 に答える 1

3

これは、フラッシュ メモリの使用量と RAM の使用量のトレードオフであり、これらのマイクロコントローラーには RAM よりも多くのフラッシュがあります。

私のArduinoスケッチがRAMを使い果たしていない限り、私は通常、文字列をフラッシュに保存することを気にしません。残念ながら、スケッチが使用可能な RAM よりも多くの RAM を必要とするかどうかを判断するのは簡単ではありません。コンパイルの警告が表示されないか、動作しないか、奇妙な動作が発生するかどうかです。その場合、一時的に短縮できるいくつかの配列を見つけて、スケッチを再度コンパイルします。動作が改善された場合、どこかで RAM が不足していることがわかるので、できることを探すか、PROGMEMより少ない RAM を使用してプログラムを作成する別の方法を考えます。

于 2012-08-14T15:02:45.357 に答える