|
|
@ -107,6 +107,7 @@ OLED_BLOCK_TYPE oled_dirty = 0; |
|
|
|
bool oled_initialized = false; |
|
|
|
bool oled_active = false; |
|
|
|
bool oled_scrolling = false; |
|
|
|
uint8_t oled_brightness = OLED_BRIGHTNESS; |
|
|
|
uint8_t oled_rotation = 0; |
|
|
|
uint8_t oled_rotation_width = 0; |
|
|
|
uint8_t oled_scroll_speed = 0; // this holds the speed after being remapped to ssd1306 internal values |
|
|
@ -193,7 +194,7 @@ bool oled_init(uint8_t rotation) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
static const uint8_t PROGMEM display_setup2[] = {I2C_CMD, COM_PINS, OLED_COM_PINS, CONTRAST, 0x8F, PRE_CHARGE_PERIOD, 0xF1, VCOM_DETECT, 0x40, DISPLAY_ALL_ON_RESUME, NORMAL_DISPLAY, DEACTIVATE_SCROLL, DISPLAY_ON}; |
|
|
|
static const uint8_t PROGMEM display_setup2[] = {I2C_CMD, COM_PINS, OLED_COM_PINS, CONTRAST, OLED_BRIGHTNESS, PRE_CHARGE_PERIOD, 0xF1, VCOM_DETECT, 0x20, DISPLAY_ALL_ON_RESUME, NORMAL_DISPLAY, DEACTIVATE_SCROLL, DISPLAY_ON}; |
|
|
|
if (I2C_TRANSMIT_P(display_setup2) != I2C_STATUS_SUCCESS) { |
|
|
|
print("display_setup2 failed\n"); |
|
|
|
return false; |
|
|
@ -550,6 +551,20 @@ bool oled_off(void) { |
|
|
|
|
|
|
|
bool is_oled_on(void) { return oled_active; } |
|
|
|
|
|
|
|
uint8_t oled_set_brightness(uint8_t level) { |
|
|
|
uint8_t set_contrast[] = {I2C_CMD, CONTRAST, level}; |
|
|
|
if (oled_brightness != level) { |
|
|
|
if (I2C_TRANSMIT(set_contrast) != I2C_STATUS_SUCCESS) { |
|
|
|
print("set_brightness cmd failed\n"); |
|
|
|
return oled_brightness; |
|
|
|
} |
|
|
|
oled_brightness = level; |
|
|
|
} |
|
|
|
return oled_brightness; |
|
|
|
} |
|
|
|
|
|
|
|
uint8_t oled_get_brightness(void) { return oled_brightness; } |
|
|
|
|
|
|
|
// Set the specific 8 lines rows of the screen to scroll. |
|
|
|
// 0 is the default for start, and 7 for end, which is the entire |
|
|
|
// height of the screen. For 128x32 screens, rows 4-7 are not used. |
|
|
|