問題タブ [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.
c++ - PROGMEM を使用しているときに何が欠けていますか?
そのため、多次元の CHAR 配列を Arduino のプログラム メモリに格納しようとしていますが、それを機能させるのに問題があります。これが私が持っているものです...
PROGMEM のドキュメントによると、ポインタを char データに戻すには、pgm_read_word 呼び出しを使用する必要があります。しかし、これを使って読み戻そうとすると...
...私が返すのはゴミだけです。
PROGMEM 行をドロップし、RGBBitmap ポインターでのみ動作し、pgm_read_word をドロップすると、動作しますが、それは RAM 内にあり、私は外に出ています。
それで、私はここで何が欠けていますか?
arduino - Arduino: PROGMEM を使用して (読み取り可能に) 構造体を初期化する方法
私はこれを持っています:
そして、これ:-
したがって、後でメニューを次のような関数に渡すことができます。
それをすべて FLASH に移動するにはどうすればよいですか?
私はものの山を組み合わせてみましたが、この厄介なクラッジを除いて、「グローバル変数は688バイト(33%)を使用しています」というメッセージを減らすものはありません:
これは、読み取り可能なメニューをソースにコーディングする私の能力を破壊し、途中ですべてのメニュー作業を 3 倍にします...
メニューの行の「定義」をソースコード内のオールインワン行に保ちながら、どうにかしてこれを機能させるにはどうすればよいですか?
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 からのバイトは同じではありませんか? また、私の文法について申し訳ありません。
c - ArduinoのCでPROGMEMの構造体から関数ポインタを使用する
PROGMEM に格納された構造体から関数ポインタを読み取り、対応する関数に値 (入力) を渡して戻り値を保存しようとしていますが、正しい構文が見つかりません。
私が得るのは、Arduino IDE 1.6.5からの次のエラーだけです:
PROGMEM から関数を読み取り、正しく実行するにはどうすればよいですか?