Просмотр исходного кода

[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'
Takeshi ISHII 4 лет назад
Родитель
Сommit
5544bf8524

+ 31 - 0
keyboards/helix/rev2/keymaps/five_rows/config.h

@@ -3,6 +3,7 @@ This is the c configuration file for the keymap
 
 Copyright 2012 Jun Wako <wakojun@gmail.com>
 Copyright 2015 Jack Humbert
+Copyright 2020 mtei
 
 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
@@ -27,12 +28,27 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 /* when TAPPING_TERM >= 500 same effect PERMISSIVE_HOLD.
    see tmk_core/common/action_tapping.c */
 
+#undef OLED_UPDATE_INTERVAL
+#define OLED_UPDATE_INTERVAL 50
+
 // place overrides here
 
 // If you need more program area, try select and reduce rgblight modes 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 LED_ANIMATIONS_LEVEL > 1
    #define RGBLIGHT_EFFECT_BREATHING
    #define RGBLIGHT_EFFECT_RAINBOW_MOOD
    #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_RGB_TEST
    //#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 /* CONFIG_USER_H */
+
+#ifdef DEBUG_CONFIG
+#  include "debug_config.h"
+#endif

+ 10 - 0
keyboards/helix/rev2/keymaps/five_rows/oled_display.c

@@ -163,6 +163,10 @@ void render_status(void) {
 }
 
 #    ifdef SSD1306OLED
+#        if OLED_UPDATE_INTERVAL > 0
+uint16_t oled_update_timeout;
+#        endif
+
 void iota_gfx_task_user(void) {
     struct CharacterMatrix matrix;
 
@@ -172,6 +176,12 @@ void iota_gfx_task_user(void) {
     }
 #        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);
     if (is_keyboard_master()) {
         render_status(&matrix);

+ 34 - 23
keyboards/helix/rev2/keymaps/five_rows/rules.mk

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