diff options
| author | Ryan <fauxpark@gmail.com> | 2020-10-29 18:12:50 +1100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-29 00:12:50 -0700 |
| commit | 5cecc1ea1ec8df3b74d01f96336dee2c2f5c6f4e (patch) | |
| tree | c5abcb14e22e0a9ce2476162208b45bcf6a6d77a /drivers/oled/oled_driver.c | |
| parent | b9ed9d33d3b57627e919e771f62ff1cbecf0c8d4 (diff) | |
| download | qmk_firmware-5cecc1ea1ec8df3b74d01f96336dee2c2f5c6f4e.tar.gz qmk_firmware-5cecc1ea1ec8df3b74d01f96336dee2c2f5c6f4e.zip | |
Add brightness level API to OLED driver (#10772)
* Add brightness level API to OLED driver
* Set default brightness to 255
Diffstat (limited to 'drivers/oled/oled_driver.c')
| -rw-r--r-- | drivers/oled/oled_driver.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/drivers/oled/oled_driver.c b/drivers/oled/oled_driver.c index 0b24a987d..ba11db1d2 100644 --- a/drivers/oled/oled_driver.c +++ b/drivers/oled/oled_driver.c | |||
| @@ -107,6 +107,7 @@ OLED_BLOCK_TYPE oled_dirty = 0; | |||
| 107 | bool oled_initialized = false; | 107 | bool oled_initialized = false; |
| 108 | bool oled_active = false; | 108 | bool oled_active = false; |
| 109 | bool oled_scrolling = false; | 109 | bool oled_scrolling = false; |
| 110 | uint8_t oled_brightness = OLED_BRIGHTNESS; | ||
| 110 | uint8_t oled_rotation = 0; | 111 | uint8_t oled_rotation = 0; |
| 111 | uint8_t oled_rotation_width = 0; | 112 | uint8_t oled_rotation_width = 0; |
| 112 | uint8_t oled_scroll_speed = 0; // this holds the speed after being remapped to ssd1306 internal values | 113 | 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) { | |||
| 193 | } | 194 | } |
| 194 | } | 195 | } |
| 195 | 196 | ||
| 196 | 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}; | 197 | 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}; |
| 197 | if (I2C_TRANSMIT_P(display_setup2) != I2C_STATUS_SUCCESS) { | 198 | if (I2C_TRANSMIT_P(display_setup2) != I2C_STATUS_SUCCESS) { |
| 198 | print("display_setup2 failed\n"); | 199 | print("display_setup2 failed\n"); |
| 199 | return false; | 200 | return false; |
| @@ -550,6 +551,20 @@ bool oled_off(void) { | |||
| 550 | 551 | ||
| 551 | bool is_oled_on(void) { return oled_active; } | 552 | bool is_oled_on(void) { return oled_active; } |
| 552 | 553 | ||
| 554 | uint8_t oled_set_brightness(uint8_t level) { | ||
| 555 | uint8_t set_contrast[] = {I2C_CMD, CONTRAST, level}; | ||
| 556 | if (oled_brightness != level) { | ||
| 557 | if (I2C_TRANSMIT(set_contrast) != I2C_STATUS_SUCCESS) { | ||
| 558 | print("set_brightness cmd failed\n"); | ||
| 559 | return oled_brightness; | ||
| 560 | } | ||
| 561 | oled_brightness = level; | ||
| 562 | } | ||
| 563 | return oled_brightness; | ||
| 564 | } | ||
| 565 | |||
| 566 | uint8_t oled_get_brightness(void) { return oled_brightness; } | ||
| 567 | |||
| 553 | // Set the specific 8 lines rows of the screen to scroll. | 568 | // Set the specific 8 lines rows of the screen to scroll. |
| 554 | // 0 is the default for start, and 7 for end, which is the entire | 569 | // 0 is the default for start, and 7 for end, which is the entire |
| 555 | // height of the screen. For 128x32 screens, rows 4-7 are not used. | 570 | // height of the screen. For 128x32 screens, rows 4-7 are not used. |
