diff --git a/keyboards/helix/rev2/keymaps/five_rows/config.h b/keyboards/helix/rev2/keymaps/five_rows/config.h index 538859bc3c5d..30848162cbf4 100644 --- a/keyboards/helix/rev2/keymaps/five_rows/config.h +++ b/keyboards/helix/rev2/keymaps/five_rows/config.h @@ -27,6 +27,9 @@ along with this program. If not, see . /* when TAPPING_TERM >= 500 same effect PERMISSIVE_HOLD. see tmk_core/common/action_tapping.c */ +//#define DIP_SWITCH_PINS { B5, B6 } +#define DIP_SWITCH_PINS { B5, B6, B5, B6 } + // place overrides here // If you need more program area, try select and reduce rgblight modes to use. diff --git a/keyboards/helix/rev2/keymaps/five_rows/keymap.c b/keyboards/helix/rev2/keymaps/five_rows/keymap.c index eb73881c6ba9..b8c4602af651 100644 --- a/keyboards/helix/rev2/keymaps/five_rows/keymap.c +++ b/keyboards/helix/rev2/keymaps/five_rows/keymap.c @@ -1,4 +1,5 @@ #include QMK_KEYBOARD_H +#include #include "bootloader.h" #ifdef PROTOCOL_LUFA #include "lufa.h" @@ -13,6 +14,7 @@ #ifdef CONSOLE_ENABLE #include #endif +#include "timer.h" extern keymap_config_t keymap_config; @@ -332,8 +334,13 @@ uint32_t default_layer_state_set_kb(uint32_t state) { return state; } +void dump_pbuf(void); void update_base_layer(int base) { + uprintf("layer\n"); + dump_pbuf(); + uprintf("call dip_switch_read(true)\n"); + dip_switch_read(true); if( current_default_layer != base ) { eeconfig_update_default_layer(1UL< 0 ) { + if (pbuf_count > 1) + uprintf(" %06d : dump_pbuf %d\n", timer_read(), pbuf_count); + for( uint8_t i = 0; i < pbuf_count; i++ ) { + uprintf(" %06d : ", pbuf[i].timer); + __xprintf(pbuf[i].fmt, pbuf[i].arg1, pbuf[i].arg2); + } + pbuf_count = 0; + if( pbuf_overflow ) { + uprintf(" pbuf overflow \n"); + pbuf_overflow = false; + } + } +#endif +} + +void matrix_scan_user(void) { + if( pbuf_wait ) { + if( pbuf_timer == 0 ) { + /* the first scan. */ + pbuf_timer = timer_read(); + } + if( timer_elapsed(pbuf_timer) < 2000 ) { + return; + } + pbuf_wait = false; + dump_pbuf(); + } +} + +void dip_switch_update_user(uint8_t index, bool active) { + if( pbuf_count < sizeof(pbuf)/sizeof(pbuf[0]) ) { + pbuf[pbuf_count].fmt = PSTR("dip_switch_update_user(%d,%d)\n"); + pbuf[pbuf_count].arg1 = index; + pbuf[pbuf_count].arg2 = active; + pbuf[pbuf_count].timer = timer_read(); + pbuf_count++; + } else { + pbuf_overflow = true; + } + dump_pbuf(); +} + +void dip_switch_update_mask_user(uint32_t state) { + if( pbuf_count < sizeof(pbuf)/sizeof(pbuf[0]) ) { + pbuf[pbuf_count].fmt = PSTR("dip_switch_update_mask_user(0b%b)\n"); + pbuf[pbuf_count].arg1 = state; + pbuf[pbuf_count].timer = timer_read(); + pbuf_count++; + } else { + pbuf_overflow = true; + } + dump_pbuf(); +} + +void keyboard_pre_init_user(void) +{ + if( pbuf_count < sizeof(pbuf)/sizeof(pbuf[0]) ) { + pbuf[pbuf_count].fmt = PSTR("keyboard_pre_init_user()\n"); + pbuf[pbuf_count].timer = timer_read(); + pbuf_count++; + } else { + pbuf_overflow = true; + } +} + +void keyboard_post_init_user(void) +{ + if( pbuf_count < sizeof(pbuf)/sizeof(pbuf[0]) ) { + pbuf[pbuf_count].fmt = PSTR("keyboard_post_init_user()\n"); + pbuf[pbuf_count].timer = timer_read(); + pbuf_count++; + } else { + pbuf_overflow = true; + } +} diff --git a/keyboards/helix/rev2/keymaps/five_rows/rules.mk b/keyboards/helix/rev2/keymaps/five_rows/rules.mk index fb564b6e0424..0303d49aeaf5 100644 --- a/keyboards/helix/rev2/keymaps/five_rows/rules.mk +++ b/keyboards/helix/rev2/keymaps/five_rows/rules.mk @@ -30,6 +30,9 @@ ifneq ($(strip $(HELIX)),) endif endif +CONSOLE_ENABLE = yes +DIP_SWITCH_ENABLE = yes + # convert Helix-specific options (that represent combinations of standard options) # into QMK standard options. include $(strip $(KEYBOARD_LOCAL_FEATURES_MK))