diff options
Diffstat (limited to 'keyboards/sixkeyboard')
-rw-r--r-- | keyboards/sixkeyboard/config.h | 4 | ||||
-rw-r--r-- | keyboards/sixkeyboard/keymaps/default/keymap.c | 10 | ||||
-rw-r--r-- | keyboards/sixkeyboard/matrix.c | 39 | ||||
-rw-r--r-- | keyboards/sixkeyboard/rules.mk | 24 |
4 files changed, 44 insertions, 33 deletions
diff --git a/keyboards/sixkeyboard/config.h b/keyboards/sixkeyboard/config.h index bf58bb2b7c..4ce25c6709 100644 --- a/keyboards/sixkeyboard/config.h +++ b/keyboards/sixkeyboard/config.h @@ -107,8 +107,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. /* disable action features */ //#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT +#define NO_ACTION_TAPPING +#define NO_ACTION_ONESHOT //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION diff --git a/keyboards/sixkeyboard/keymaps/default/keymap.c b/keyboards/sixkeyboard/keymaps/default/keymap.c index 641ed790e8..74ce6f0369 100644 --- a/keyboards/sixkeyboard/keymaps/default/keymap.c +++ b/keyboards/sixkeyboard/keymaps/default/keymap.c @@ -17,16 +17,6 @@ const uint16_t PROGMEM fn_actions[] = { const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - } return MACRO_NONE; }; diff --git a/keyboards/sixkeyboard/matrix.c b/keyboards/sixkeyboard/matrix.c index ed1b70e286..860452ebd8 100644 --- a/keyboards/sixkeyboard/matrix.c +++ b/keyboards/sixkeyboard/matrix.c @@ -34,9 +34,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #include "util.h" #include "matrix.h" #include "sixkeyboard.h" +#include <string.h> /* matrix state(1:on, 0:off) */ static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_stage[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +static uint16_t debouncing_time; +static bool debouncing = false; __attribute__ ((weak)) void matrix_init_kb(void) { @@ -78,14 +84,35 @@ void matrix_init(void) DDRD &= ~(1<<6 | 1<<4 | 1<<1); PORTD |= (1<<6 | 1<<4 | 1<<1); - matrix_init_kb(); + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + matrix_stage[i] = 0; + } + + matrix_init_quantum(); } uint8_t matrix_scan(void) { - matrix[0] = (PINC&(1<<7) ? 0 : (1<<0)) | (PINB&(1<<7) ? 0 : (1<<1)) | (PINB&(1<<5) ? 0 : (1<<2)); - matrix[1] = (PIND&(1<<6) ? 0 : (1<<0)) | (PIND&(1<<1) ? 0 : (1<<1)) | (PIND&(1<<4) ? 0 : (1<<2)); + matrix_stage[0] = (PINC&(1<<7) ? 0 : (1<<0)) | (PINB&(1<<7) ? 0 : (1<<1)) | (PINB&(1<<5) ? 0 : (1<<2)); + matrix_stage[1] = (PIND&(1<<6) ? 0 : (1<<0)) | (PIND&(1<<1) ? 0 : (1<<1)) | (PIND&(1<<4) ? 0 : (1<<2)); + + if (memcmp(matrix_debouncing, matrix_stage, sizeof(matrix)) != 0) { + debouncing = true; + debouncing_time = timer_read(); + } + + matrix_debouncing[0] = matrix_stage[0]; + matrix_debouncing[1] = matrix_stage[1]; + + if (debouncing && (timer_elapsed(debouncing_time) > 20)) { + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = matrix_debouncing[i]; + } + debouncing = false; + } matrix_scan_quantum(); @@ -111,12 +138,6 @@ matrix_row_t matrix_get_row(uint8_t row) void matrix_print(void) { - print("\nr/c 0123456789ABCDEF\n"); - for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - phex(row); print(": "); - pbin_reverse16(matrix_get_row(row)); - print("\n"); - } } uint8_t matrix_key_count(void) diff --git a/keyboards/sixkeyboard/rules.mk b/keyboards/sixkeyboard/rules.mk index 2c99985a97..6aedc71485 100644 --- a/keyboards/sixkeyboard/rules.mk +++ b/keyboards/sixkeyboard/rules.mk @@ -55,16 +55,16 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # Build Options # comment out to disable the options. # -BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) -EXTRAKEY_ENABLE ?= no # Audio control and System control(+450) -CONSOLE_ENABLE ?= no # Console for debug(+400) -COMMAND_ENABLE ?= no # Commands for debug and configuration -SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend -NKRO_ENABLE ?= no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality -MIDI_ENABLE ?= no # MIDI controls -AUDIO_ENABLE ?= no -UNICODE_ENABLE ?= no # Unicode -BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = no # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID CUSTOM_MATRIX = yes
\ No newline at end of file |