From 7812b1df57abaaff8b297457eab61fdeb6bfc5b0 Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 29 Oct 2020 18:12:50 +1100 Subject: Add brightness level API to OLED driver (#10772) * Add brightness level API to OLED driver * Set default brightness to 255 --- drivers/oled/oled_driver.c | 17 +++++++++++++++- drivers/oled/oled_driver.h | 10 ++++++++++ .../handwired/onekey/keymaps/pytest_nocpp/keymap.c | 23 ---------------------- .../handwired/onekey/pytest/templates/keymap.json | 3 --- 4 files changed, 26 insertions(+), 27 deletions(-) delete mode 100644 keyboards/handwired/onekey/keymaps/pytest_nocpp/keymap.c delete mode 100644 keyboards/handwired/onekey/pytest/templates/keymap.json diff --git a/drivers/oled/oled_driver.c b/drivers/oled/oled_driver.c index 0b24a987de..ba11db1d2a 100644 --- a/drivers/oled/oled_driver.c +++ b/drivers/oled/oled_driver.c @@ -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. diff --git a/drivers/oled/oled_driver.h b/drivers/oled/oled_driver.h index 2aa0f7201f..99acacd96e 100644 --- a/drivers/oled/oled_driver.h +++ b/drivers/oled/oled_driver.h @@ -141,6 +141,10 @@ along with this program. If not, see . #if !defined(OLED_FONT_HEIGHT) # define OLED_FONT_HEIGHT 8 #endif +// Default brightness level +#if !defined(OLED_BRIGHTNESS) +# define OLED_BRIGHTNESS 255 +#endif #if !defined(OLED_TIMEOUT) # if defined(OLED_DISABLE_TIMEOUT) @@ -261,6 +265,12 @@ bool oled_off(void); // not bool is_oled_on(void); +// Sets the brightness of the display +uint8_t oled_set_brightness(uint8_t level); + +// Gets the current brightness of the display +uint8_t oled_get_brightness(void); + // Basically it's oled_render, but with timeout management and oled_task_user calling! void oled_task(void); diff --git a/keyboards/handwired/onekey/keymaps/pytest_nocpp/keymap.c b/keyboards/handwired/onekey/keymaps/pytest_nocpp/keymap.c deleted file mode 100644 index 4e06bb11ec..0000000000 --- a/keyboards/handwired/onekey/keymaps/pytest_nocpp/keymap.c +++ /dev/null @@ -1,23 +0,0 @@ -#include QMK_KEYBOARD_H -#include "audio.h" - -/* THIS FILE WAS GENERATED AND IS EXPERIMENTAL! - * - * This file was generated by qmk-compile-json. You may or may not want to - * edit it directly. - */ - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT(KC_ENTER) -}; - -void encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { - if (clockwise) { - tap_code(KC_UP); - } else { - tap_code(KC_DOWN); - } - } - -}; diff --git a/keyboards/handwired/onekey/pytest/templates/keymap.json b/keyboards/handwired/onekey/pytest/templates/keymap.json deleted file mode 100644 index 35344388f6..0000000000 --- a/keyboards/handwired/onekey/pytest/templates/keymap.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "documentation": "This file is a keymap.json file for handwired/onekey/pytest" -} -- cgit v1.2.3