그래서 내 Arduino에 프로그램 메모리에 다차원 CHAR 배열을 저장하려고하는데 문제가 발생합니다. 여기에 당신은 pgm_read_word 호출을 사용한다, 다시 문자 데이터에 대한 포인터를 얻을 할 ... PROGMEM 문서 당PROGMEM을 사용할 때 무엇이 누락 되었습니까?
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
};
, 내가 가진거야. 그러나 이것을 사용하여 다시 읽으려고하면 ...
RGBBitmap * pMailbox0 = (RGBBitmap*)pgm_read_word(&Mailbox[0]);
... 모두 내가 쓰레기가됩니다.
PROGMEM 행을 삭제하고 RGBBitmap 포인터로 작업하고 pgm_read_word를 삭제하면 작동하지만 RAM에 있습니다.
그래서 내가 무엇을 놓치고 있습니까?
오늘의 큰 질문 : 어떤 컴파일러와 플랫폼을 사용하고 있습니까? 필자가 사용하고있는 컴파일러 중에'PROGMEM' 키워드가 없으며 임베디드 시스템 및 PC 용으로 쓰고 있습니다. –
@ThomasMatthews http://arduino.cc/en/Reference/PROGMEM –
Arduino가 키워드로 불렀습니다. 그래도 대답을하기 위해 q를 업데이트 할 것입니다. – MarqueIV