|
|
|
|
@ -70,7 +70,10 @@ static uint8_t micro_oled_screen_current[LCDWIDTH * LCDHEIGHT / 8] = {0};
|
|
|
|
|
D6 D6.............D6 /
|
|
|
|
|
D7 D7.............D7 ----
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#ifdef NO_LCD_SPLASH
|
|
|
|
|
// do not initialize with a splash screen
|
|
|
|
|
static uint8_t micro_oled_screen_buffer[LCDWIDTH * LCDHEIGHT / 8] = {0};
|
|
|
|
|
#else
|
|
|
|
|
# if LCDWIDTH == 64
|
|
|
|
|
# if LCDHEIGHT == 48
|
|
|
|
|
static uint8_t micro_oled_screen_buffer[] = {
|
|
|
|
|
@ -104,6 +107,7 @@ static uint8_t micro_oled_screen_buffer[LCDWIDTH * LCDHEIGHT / 8] = {0x00, 0x00,
|
|
|
|
|
// catchall for custom screen sizes
|
|
|
|
|
static uint8_t micro_oled_screen_buffer[LCDWIDTH * LCDHEIGHT / 8] = {0};
|
|
|
|
|
# endif
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
void micro_oled_init(void) {
|
|
|
|
|
i2c_init();
|
|
|
|
|
@ -145,7 +149,7 @@ void micro_oled_init(void) {
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
send_command(MEMORYMODE);
|
|
|
|
|
send_command(0x10);
|
|
|
|
|
send_command(0x02); // 0x02 = 10b, Page addressing mode
|
|
|
|
|
|
|
|
|
|
send_command(SETCOMPINS); // 0xDA
|
|
|
|
|
if (LCDHEIGHT > 32) {
|
|
|
|
|
@ -250,13 +254,14 @@ void send_buffer(void) {
|
|
|
|
|
if (micro_oled_screen_buffer[i * LCDWIDTH + j] != micro_oled_screen_current[i * LCDWIDTH + j]) {
|
|
|
|
|
if (page_addr != i) {
|
|
|
|
|
set_page_address(i);
|
|
|
|
|
page_addr = i;
|
|
|
|
|
}
|
|
|
|
|
if (col_addr != j) {
|
|
|
|
|
set_column_address(j);
|
|
|
|
|
col_addr = j + 1;
|
|
|
|
|
}
|
|
|
|
|
send_data(micro_oled_screen_buffer[i * LCDWIDTH + j]);
|
|
|
|
|
micro_oled_screen_current[i * LCDWIDTH + j] = micro_oled_screen_buffer[i * LCDWIDTH + j];
|
|
|
|
|
col_addr = j + 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|