[Keymap] update rules.mk and config.h of `helix/rev2:five_rows` (#11302)

* update keyboards/helix/rev2/keymaps/five_rows/rules.mk: oled selection, led animation selection

* add OLED_UPDATE_INTERVAL support into keyboards/helix/rev2/keymaps/five_rows/oled_display.c

Support for OLED_UPDATE_INTERVAL, even for older types of OLED tasks.

* Add 'HELIX=debug/no-debug' option into 'helix/rev2/keymaps/five_rows/rules.mk'
master
Takeshi ISHII 2020-12-26 02:38:07 +09:00 committed by GitHub
parent 7ca4b61922
commit 5544bf8524
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 75 additions and 23 deletions

View File

@ -3,6 +3,7 @@ This is the c configuration file for the keymap
Copyright 2012 Jun Wako <wakojun@gmail.com> Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert Copyright 2015 Jack Humbert
Copyright 2020 mtei
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@ -27,12 +28,27 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* when TAPPING_TERM >= 500 same effect PERMISSIVE_HOLD. /* when TAPPING_TERM >= 500 same effect PERMISSIVE_HOLD.
see tmk_core/common/action_tapping.c */ see tmk_core/common/action_tapping.c */
#undef OLED_UPDATE_INTERVAL
#define OLED_UPDATE_INTERVAL 50
// place overrides here // place overrides here
// If you need more program area, try select and reduce rgblight modes to use. // If you need more program area, try select and reduce rgblight modes to use.
// Selection of RGBLIGHT MODE to use. // Selection of RGBLIGHT MODE to use.
#undef RGBLIGHT_ANIMATIONS
#undef RGBLIGHT_EFFECT_BREATHING
#undef RGBLIGHT_EFFECT_RAINBOW_MOOD
#undef RGBLIGHT_EFFECT_RAINBOW_SWIRL
#undef RGBLIGHT_EFFECT_SNAKE
#undef RGBLIGHT_EFFECT_KNIGHT
#undef RGBLIGHT_EFFECT_CHRISTMAS
#undef RGBLIGHT_EFFECT_STATIC_GRADIENT
#undef RGBLIGHT_EFFECT_RGB_TEST
#undef RGBLIGHT_EFFECT_ALTERNATING
#if defined(LED_ANIMATIONS) #if defined(LED_ANIMATIONS)
# if LED_ANIMATIONS_LEVEL > 1
#define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD #define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
@ -42,6 +58,21 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_EFFECT_STATIC_GRADIENT #define RGBLIGHT_EFFECT_STATIC_GRADIENT
//#define RGBLIGHT_EFFECT_RGB_TEST //#define RGBLIGHT_EFFECT_RGB_TEST
//#define RGBLIGHT_EFFECT_ALTERNATING //#define RGBLIGHT_EFFECT_ALTERNATING
# else
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
//#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
//#define RGBLIGHT_EFFECT_SNAKE
//#define RGBLIGHT_EFFECT_KNIGHT
//#define RGBLIGHT_EFFECT_CHRISTMAS
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
//#define RGBLIGHT_EFFECT_RGB_TEST
//#define RGBLIGHT_EFFECT_ALTERNATING
# endif
#endif #endif
#endif /* CONFIG_USER_H */ #endif /* CONFIG_USER_H */
#ifdef DEBUG_CONFIG
# include "debug_config.h"
#endif

View File

@ -163,6 +163,10 @@ void render_status(void) {
} }
# ifdef SSD1306OLED # ifdef SSD1306OLED
# if OLED_UPDATE_INTERVAL > 0
uint16_t oled_update_timeout;
# endif
void iota_gfx_task_user(void) { void iota_gfx_task_user(void) {
struct CharacterMatrix matrix; struct CharacterMatrix matrix;
@ -172,6 +176,12 @@ void iota_gfx_task_user(void) {
} }
# endif # endif
#if OLED_UPDATE_INTERVAL > 0
if (timer_elapsed(oled_update_timeout) < OLED_UPDATE_INTERVAL) {
return;
}
oled_update_timeout = timer_read();
#endif
matrix_clear(&matrix); matrix_clear(&matrix);
if (is_keyboard_master()) { if (is_keyboard_master()) {
render_status(&matrix); render_status(&matrix);

View File

@ -12,6 +12,7 @@
# yes, yes +3200 # yes, yes +3200
# no, yes +400 # no, yes +400
LTO_ENABLE = no # if firmware size over limit, try this option LTO_ENABLE = no # if firmware size over limit, try this option
LED_ANIMATIONS = yes
# Helix Spacific Build Options # Helix Spacific Build Options
# you can uncomment and edit follows 7 Variables # you can uncomment and edit follows 7 Variables
@ -26,8 +27,8 @@ HELIX_ROWS = 5 # Helix Rows is 4 or 5
ifneq ($(strip $(HELIX)),) ifneq ($(strip $(HELIX)),)
define KEYMAP_OPTION_PARSE define KEYMAP_OPTION_PARSE
# $xinfo .$1.x #debug # parse 'dispoff', 'consloe', 'na', 'ani', 'mini-ani'
# parse 'dispoff', 'consle', 'stdole', 'oled', 'sc' $(if $(SHOW_PARCE),$(info parse -$1-)) #debug
ifeq ($(strip $1),dispoff) ifeq ($(strip $1),dispoff)
OLED_ENABLE = no OLED_ENABLE = no
OLED_DRIVER_ENABLE = no OLED_DRIVER_ENABLE = no
@ -37,19 +38,26 @@ ifneq ($(strip $(HELIX)),)
ifeq ($(strip $1),console) ifeq ($(strip $1),console)
CONSOLE_ENABLE = yes CONSOLE_ENABLE = yes
endif endif
ifeq ($(strip $1),stdole) ifeq ($(strip $1),debug)
## make HELIX=stdole helix:five_rows -- use TOP/drivers/oled/oled_driver.c DEBUG_CONFIG = yes
OLED_ENABLE = new
endif endif
ifeq ($(strip $1),oled) ifneq ($(filter nodebug no-debug no_debug,$(strip $1)),)
## make HELIX=oled helix:five_rows -- use helix/local_drivers/ssd1306.c DEBUG_CONFIG = no
OLED_ENABLE = yes
endif endif
ifeq ($(strip $1),back) ifneq ($(filter na no_ani no-ani,$(strip $1)),)
LED_BACK_ENABLE = yes LED_ANIMATIONS = no
endif endif
ifeq ($(strip $1),sc) ifneq ($(filter mini-ani mini_ani,$(strip $1)),)
SPLIT_KEYBOARD = yes LED_ANIMATIONS = mini
endif
ifneq ($(filter ani animation,$(strip $1)),)
LED_ANIMATIONS = yes
endif
ifeq ($(strip $1),lto)
LTO_ENABLE = yes
endif
ifneq ($(filter nolto no-lto no_lto,$(strip $1)),)
LTO_ENABLE = no
endif endif
endef # end of KEYMAP_OPTION_PARSE endef # end of KEYMAP_OPTION_PARSE
@ -58,20 +66,23 @@ ifneq ($(strip $(HELIX)),)
$(call KEYMAP_OPTION_PARSE,$(A_OPTION_NAME)))) $(call KEYMAP_OPTION_PARSE,$(A_OPTION_NAME))))
endif endif
ifeq ($(strip $(OLED_ENABLE)), new) ifeq ($(strip $(LED_ANIMATIONS)), yes)
OLED_DRIVER_ENABLE = yes OPT_DEFS += -DLED_ANIMATIONS_LEVEL=2
OLED_ENABLE = no
SRC += oled_display.c
ifeq ($(strip $(LOCAL_GLCDFONT)), yes)
OPT_DEFS += -DOLED_FONT_H=\<helixfont.h\>
else
OPT_DEFS += -DOLED_FONT_H=\"common/glcdfont.c\"
endif endif
ifeq ($(strip $(LED_ANIMATIONS)), mini)
OPT_DEFS += -DLED_ANIMATIONS_LEVEL=1
LED_ANIMATIONS = yes
endif endif
ifeq ($(strip $(OLED_ENABLE)), yes)
SRC += oled_display.c ifeq ($(strip $(DEBUG_CONFIG)), yes)
OPT_DEFS += -DDEBUG_CONFIG
endif endif
# convert Helix-specific options (that represent combinations of standard options) # convert Helix-specific options (that represent combinations of standard options)
# into QMK standard options. # into QMK standard options.
include $(strip $(KEYBOARD_LOCAL_FEATURES_MK)) include $(strip $(KEYBOARD_LOCAL_FEATURES_MK))
ifeq ($(strip $(OLED_ENABLE)), yes)
SRC += oled_display.c
endif