問題タブ [progmem]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1011 参照

c++ - PROGMEM を使用しているときに何が欠けていますか?

そのため、多次元の CHAR 配列を Arduino のプログラム メモリに格納しようとしていますが、それを機能させるのに問題があります。これが私が持っているものです...

PROGMEM のドキュメントによると、ポインタを char データに戻すには、pgm_read_word 呼び出しを使用する必要があります。しかし、これを使って読み戻そうとすると...

...私が返すのはゴミだけです。

PROGMEM 行をドロップし、RGBBitmap ポインターでのみ動作し、pgm_read_word をドロップすると、動作しますが、それは RAM 内にあり、私は外に出ています。

それで、私はここで何が欠けていますか?

0 投票する
2 に答える
1247 参照

arduino - Arduino: PROGMEM を使用して (読み取り可能に) 構造体を初期化する方法

私はこれを持っています:

そして、これ:-

したがって、後でメニューを次のような関数に渡すことができます。

それをすべて FLASH に移動するにはどうすればよいですか?

私はものの山を組み合わせてみましたが、この厄介なクラッジを除いて、「グローバル変数は688バイト(33%)を使用しています」というメッセージを減らすものはありません:

これは、読み取り可能なメニューをソースにコーディングする私の能力を破壊し、途中ですべてのメニュー作業を 3 倍にします...

メニューの行の「定義」をソースコード内のオールインワン行に保ちながら、どうにかしてこれを機能させるにはどうすればよいですか?

0 投票する
1 に答える
3037 参照

c++ - PROGMEM なしの Adafruit gfx ライブラリ drawBitmap

したがって、画像のバイト配列を外部eeprom(c24LC16B)に入れ、Adafruit gfxライブラリのdrawBitmap()関数を使用して、Nokia 3310 LCD(Adafruit PCD8544ライブラリを使用)に描画しようとしています。しかし問題は、drawBitmap() が静的バイト PROGMEM 配列しか使用できないことです。が悪いので、img 配列を eeprom からバッファ (バイト buf[504]{}; ) に読み取ってから、ディスプレイに描画する必要があります。

これをAdafruit_GFX.ccpに追加するなど、オンラインで見つけたいくつかの変更を試みました。

それでもゴミしか表示されませんでした

では、なぜ PROGMEM と通常の配列についてそれほど大きな問題があるのでしょうか? PROGMEM からのバイトと SRAM からのバイトは同じではありませんか? また、私の文法について申し訳ありません。

0 投票する
1 に答える
967 参照

c - ArduinoのCでPROGMEMの構造体から関数ポインタを使用する

PROGMEM に格納された構造体から関数ポインタを読み取り、対応する関数に値 (入力) を渡して戻り値を保存しようとしていますが、正しい構文が見つかりません。

私が得るのは、Arduino IDE 1.6.5からの次のエラーだけです:

PROGMEM から関数を読み取り、正しく実行するにはどうすればよいですか?