From d979f006ef93c548c627ef5917f823f5d128388c Mon Sep 17 00:00:00 2001 From: Pawel Jalocha Date: Mon, 29 Apr 2019 23:25:18 +0100 Subject: [PATCH] OLED: add display-invert command --- main/hal.cpp | 11 +++++++++++ main/hal.h | 3 ++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/main/hal.cpp b/main/hal.cpp index 38e7aca..15d9069 100644 --- a/main/hal.cpp +++ b/main/hal.cpp @@ -764,6 +764,17 @@ esp_err_t OLED_DisplayON(uint8_t ON, uint8_t DispIdx) i2c_cmd_link_delete(cmd); return espRc; } +esp_err_t OLED_DisplayINV(uint8_t INV, uint8_t DispIdx) +{ i2c_cmd_handle_t cmd = i2c_cmd_link_create(); + i2c_master_start(cmd); + i2c_master_write_byte(cmd, ((OLED_I2C_ADDR+DispIdx)<<1) | I2C_MASTER_WRITE, true); + i2c_master_write_byte(cmd, OLED_CONTROL_BYTE_CMD_STREAM, true); + i2c_master_write_byte(cmd, OLED_CMD_DISPLAY_NORMAL+INV, true); + i2c_master_stop(cmd); + esp_err_t espRc = i2c_master_cmd_begin(I2C_BUS, cmd, 10); + i2c_cmd_link_delete(cmd); + return espRc; } + esp_err_t OLED_SetContrast(uint8_t Contrast, uint8_t DispIdx) { i2c_cmd_handle_t cmd = i2c_cmd_link_create(); i2c_master_start(cmd); diff --git a/main/hal.h b/main/hal.h index 76734c7..4d10cb5 100644 --- a/main/hal.h +++ b/main/hal.h @@ -121,7 +121,8 @@ void RFM_RESET(uint8_t On); // RF module reset bool RFM_IRQ_isOn(void); // query the IRQ state #ifdef WITH_OLED -int OLED_DisplayON(uint8_t ON, uint8_t DispIdx=0); +int OLED_DisplayON(uint8_t ON, uint8_t DispIdx=0); // when OFF then low-power mode +int OLED_DisplayINV(uint8_t INV, uint8_t DispIdx=0); int OLED_SetContrast(uint8_t Contrast, uint8_t DispIdx=0); int OLED_PutLine(uint8_t Line, const char *Text, uint8_t DispIdx=0); #endif