~ruther/qmk_firmware

a7df902734b6aa8975e3a62a07ddb5544fd4ae85 — yiancar 7 years ago dad851d
Addition of hard brigtness limit for RGB_Matrix (#3299)

* Addition of hard brigtness limit for RGB_Matrix

- Added a define "RGB_MATRIX_MAXIMUM_BRIGHTNESS" to enable hard limiting the maximum brightness for rgb_matrix
- Used the above define to limit the maximum brigthness of HS60 for better stability

* Added docs for new rgb_matrix define

* Addition of check for maximum brightness
3 files changed, 9 insertions(+), 3 deletions(-)

M docs/feature_rgb_matrix.md
M keyboards/hs60/config.h
M quantum/rgb_matrix.c
M docs/feature_rgb_matrix.md => docs/feature_rgb_matrix.md +1 -0
@@ 119,6 119,7 @@ A similar function works in the keymap as `rgb_matrix_indicators_user`.
	#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
	#define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended
    #define RGB_MATRIX_SKIP_FRAMES 1 // number of frames to skip when displaying animations (0 is full effect) if not defined defaults to 1
    #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255

## EEPROM storage


M keyboards/hs60/config.h => keyboards/hs60/config.h +1 -0
@@ 127,6 127,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
#define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended
#define RGB_MATRIX_SKIP_FRAMES 0
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 215

#define DRIVER_ADDR_1 0b1110100
#define DRIVER_ADDR_2 0b1110101

M quantum/rgb_matrix.c => quantum/rgb_matrix.c +7 -3
@@ 41,6 41,10 @@ rgb_config_t rgb_matrix_config;
    #define EECONFIG_RGB_MATRIX EECONFIG_RGBLIGHT
#endif

#if !defined(RGB_MATRIX_MAXIMUM_BRIGHTNESS) || RGB_MATRIX_MAXIMUM_BRIGHTNESS > 255
    #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255
#endif

bool g_suspend_state = false;

// Global tick at 20 Hz


@@ 68,7 72,7 @@ void eeconfig_update_rgb_matrix_default(void) {
  rgb_matrix_config.mode = RGB_MATRIX_CYCLE_LEFT_RIGHT;
  rgb_matrix_config.hue = 0;
  rgb_matrix_config.sat = 255;
  rgb_matrix_config.val = 255;
  rgb_matrix_config.val = RGB_MATRIX_MAXIMUM_BRIGHTNESS;
  rgb_matrix_config.speed = 0;
  eeconfig_update_rgb_matrix(rgb_matrix_config.raw);
}


@@ 858,12 862,12 @@ void rgblight_decrease_sat(void) {
}

void rgblight_increase_val(void) {
    rgb_matrix_config.val = increment( rgb_matrix_config.val, 8, 0, 255 );
    rgb_matrix_config.val = increment( rgb_matrix_config.val, 8, 0, RGB_MATRIX_MAXIMUM_BRIGHTNESS );
    eeconfig_update_rgb_matrix(rgb_matrix_config.raw);
}

void rgblight_decrease_val(void) {
    rgb_matrix_config.val = decrement( rgb_matrix_config.val, 8, 0, 255 );
    rgb_matrix_config.val = decrement( rgb_matrix_config.val, 8, 0, RGB_MATRIX_MAXIMUM_BRIGHTNESS );
    eeconfig_update_rgb_matrix(rgb_matrix_config.raw);
}