Hello, I'm working with an 128x64 LCD screen and am using the Adafruit library Adafruit_SSD1306
In the code, it initialized the screen with the Adafruit splash screen. It's a pretty hefty burden on memory, but I like having this on start up. Below is how the byte array is stored in the library:
static uint8_t buffer[SSD1306_LCDHEIGHT * SSD1306_LCDWIDTH / 8] = {
0x00, 0x00, Blah Blah lots of Hex codes, 0x00
};
void Adafruit_SSD1306::display(void) {
for (uint16_t i=0; i<(SSD1306_LCDWIDTH*SSD1306_LCDHEIGHT/8); i++) {
fastSPIwrite(buffer[i]);
//ssd1306_data(buffer[i]);
}
}
My question is, can the byte array of the buffer, all those bytes, be moved into PROGMEM for better storage? Would this at all save dynamic memory?
I tried using
const uint8_t intro[SSD1306_LCDHEIGHT * SSD1306_LCDWIDTH / 8] PROGMEM = { 0x00 etc};
static uint8_t buffer[SSD1306_LCDHEIGHT * SSD1306_LCDWIDTH / 8] = {intro};
but it didn't save any memory at all. It's also giving me an "invalid conversion" warning