そのため、多次元の CHAR 配列を Arduino のプログラム メモリに格納しようとしていますが、それを機能させるのに問題があります。これが私が持っているものです...
typedef unsigned char RGBBitmap[8][8][3];
typedef prog_uchar ProgRGBBitmap[8][8][3]; // Have to use prog_uchar for stuff stored in progmem
ProgRGBBitmap Mailbox[3] PROGMEM =
{
... // some initializing data
};
PROGMEM のドキュメントによると、ポインタを char データに戻すには、pgm_read_word 呼び出しを使用する必要があります。しかし、これを使って読み戻そうとすると...
RGBBitmap * pMailbox0 = (RGBBitmap*)pgm_read_word( &Mailbox[0] );
...私が返すのはゴミだけです。
PROGMEM 行をドロップし、RGBBitmap ポインターでのみ動作し、pgm_read_word をドロップすると、動作しますが、それは RAM 内にあり、私は外に出ています。
それで、私はここで何が欠けていますか?