Added ability to set custom display address

This commit is contained in:
Mark Qvist 2023-09-19 18:32:29 +02:00
parent 948798cd3e
commit 2536c26f50
6 changed files with 37 additions and 3 deletions

View file

@ -25,16 +25,20 @@
#define DISP_ADDR 0x3C
#elif BOARD_MODEL == BOARD_TBEAM
#define DISP_RST 13
#define DISP_ADDR 0x3D
// #define DISP_ADDR 0x3C
#define DISP_ADDR 0x3C
#define DISP_CUSTOM_ADDR true
#elif BOARD_MODEL == BOARD_HELTEC32_V2 || BOARD_MODEL == BOARD_LORA32_V1_0
#define DISP_RST 16
#define DISP_ADDR 0x3C
#define SCL_OLED 15
#define SDA_OLED 4
#elif BOARD_MODEL == BOARD_RNODE_NG_21
#define DISP_RST -1
#define DISP_ADDR 0x3C
#else
#define DISP_RST -1
#define DISP_ADDR 0x3C
#define DISP_CUSTOM_ADDR true
#endif
#define SMALL_FONT &Org_01
@ -104,8 +108,16 @@ bool display_init() {
digitalWrite(pin_display_en, HIGH);
Wire.begin(SDA_OLED, SCL_OLED);
#endif
#if DISP_CUSTOM_ADDR == true
uint8_t display_address = EEPROM.read(eeprom_addr(ADDR_CONF_DADR));
if (display_address == 0xFF) display_address = DISP_ADDR;
#else
uint8_t display_address = DISP_ADDR;
#endif
if(!display.begin(SSD1306_SWITCHCAPVCC, DISP_ADDR)) {
if(!display.begin(SSD1306_SWITCHCAPVCC, display_address)) {
return false;
} else {
set_contrast(&display, display_contrast);