Add some optimization to the Tetris keyboard (#4645)

This commit is contained in:
Drashna Jaelre 2018-12-14 10:42:31 -08:00 committed by MechMerlin
parent 02d44beb44
commit 161ffa0af6
3 changed files with 31 additions and 44 deletions

View File

@ -1,5 +1,4 @@
#ifndef CONFIG_H #pragma once
#define CONFIG_H
#include "config_common.h" #include "config_common.h"
@ -10,6 +9,7 @@
#define MANUFACTURER Fengz #define MANUFACTURER Fengz
#define PRODUCT Tetris #define PRODUCT Tetris
#define DESCRIPTION Planck mit #define DESCRIPTION Planck mit
#define QMK_ESC_OUTPUT B0 #define QMK_ESC_OUTPUT B0
#define QMK_ESC_INPUT D7 #define QMK_ESC_INPUT D7
#define QMK_LED B7 #define QMK_LED B7
@ -41,8 +41,10 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
) )
#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION
#define TAPPING_TERM 200 #define TAPPING_TERM 200
#define PERMISSIVE_HOLD
#ifdef AUDIO_ENABLE #ifdef AUDIO_ENABLE
#define B5_AUDIO #define B5_AUDIO
@ -50,13 +52,11 @@
#define NO_MUSIC_MODE #define NO_MUSIC_MODE
#endif #endif
#if RGBLIGHT_ENABLE
#define RGB_DI_PIN F5 #define RGB_DI_PIN F5
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS #define RGBLIGHT_ANIMATIONS
#define RGBLIGHT_SLEEP #define RGBLIGHT_SLEEP
#define RGBLED_NUM 47 #define RGBLED_NUM 47
#define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 12 #define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 12
//#define RGBLIGHT_LIMIT_VAL 128 //#define RGBLIGHT_LIMIT_VAL 128
#endif #endif
#endif

View File

@ -286,7 +286,7 @@ static uint16_t Type_Hue=270;
void matrix_init_user( void ) void matrix_init_user( void )
{ {
_delay_ms( 200 ); wait_ms( 200 );
/* Encoder init */ /* Encoder init */
encoder_state = PIND & 0x3; encoder_state = PIND & 0x3;
@ -368,27 +368,22 @@ void matrix_scan_user( void )
switch ( layer ) switch ( layer )
{ {
case 0: case 0:
register_code( KC_VOLD ); tap_code( KC_VOLD );
unregister_code( KC_VOLD );
break; break;
case _CODE: case _CODE:
register_code( KC_LEFT ); tap_code( KC_LEFT );
unregister_code( KC_LEFT );
break; break;
case _RGB: case _RGB:
rgblight_decrease_val(); rgblight_decrease_val();
break; break;
case _NUMB: case _NUMB:
register_code( KC_LEFT ); tap_code( KC_LEFT );
unregister_code( KC_LEFT );
break; break;
case _MARO: case _MARO:
register_code( KC_UP ); tap_code( KC_UP );
unregister_code( KC_UP );
break; break;
default: default:
register_code( KC_VOLD ); tap_code( KC_VOLD );
unregister_code( KC_VOLD );
} }
/* End of Set Encoder Keycode */ /* End of Set Encoder Keycode */
@ -441,27 +436,22 @@ void matrix_scan_user( void )
switch ( layer ) switch ( layer )
{ {
case 0: case 0:
register_code( KC_VOLU ); tap_code( KC_VOLU );
unregister_code( KC_VOLU );
break; break;
case _CODE: case _CODE:
register_code( KC_RGHT ); tap_code( KC_RGHT );
unregister_code( KC_RGHT );
break; break;
case _RGB: case _RGB:
rgblight_increase_val(); rgblight_increase_val();
break; break;
case _NUMB: case _NUMB:
register_code( KC_RGHT ); tap_code( KC_RGHT );
unregister_code( KC_RGHT );
break; break;
case _MARO: case _MARO:
register_code( KC_DOWN ); tap_code( KC_DOWN );
unregister_code( KC_DOWN );
break; break;
default: default:
register_code( KC_VOLU ); tap_code( KC_VOLU );
unregister_code( KC_VOLU );
} }
/* End of Set Encoder Keycode */ /* End of Set Encoder Keycode */
@ -739,11 +729,8 @@ bool process_record_user( uint16_t keycode, keyrecord_t *record ){
if (record->event.pressed) { if (record->event.pressed) {
// Do something when pressed // Do something when pressed
} else { } else {
register_code( KC_0 ); // send 0 tap_code( KC_0 ); // send 0
unregister_code( KC_0 ); tap_code( KC_0 ); // send 0 twice without macro
register_code( KC_0 ); // send 0 twice without macro
unregister_code( KC_0 );
} }
return false; // Skip all further processing of this key return false; // Skip all further processing of this key
@ -818,7 +805,7 @@ bool process_record_user( uint16_t keycode, keyrecord_t *record ){
void led_set_user( uint8_t usb_led ) void led_set_user( uint8_t usb_led )
{ {
static uint8_t old_usb_led = 0; static uint8_t old_usb_led = 0;
_delay_ms( 10 ); /* gets rid of tick */ wait_ms( 10 ); /* gets rid of tick */
if ( (usb_led & (1 << USB_LED_CAPS_LOCK) ) && !(old_usb_led & (1 << USB_LED_CAPS_LOCK) ) ) { if ( (usb_led & (1 << USB_LED_CAPS_LOCK) ) && !(old_usb_led & (1 << USB_LED_CAPS_LOCK) ) ) {
/* CAPS on */ /* CAPS on */
@ -844,4 +831,3 @@ void led_set_user( uint8_t usb_led )
} }
old_usb_led = usb_led; old_usb_led = usb_led;
} // End of led_set_user } // End of led_set_user

View File

@ -44,17 +44,18 @@ BOOTLOADER =qmk-dfu
# Build Options # Build Options
# comment out to disable the options. # comment out to disable the options.
# #
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) MOUSEKEY_ENABLE = no # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE ?= no # Console for debug(+400) CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE ?= no # Commands for debug and configuration COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = yes # 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 BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
AUDIO_ENABLE ?= yes AUDIO_ENABLE = yes
RGBLIGHT_ENABLE ?= yes RGBLIGHT_ENABLE = yes
TAP_DANCE_ENABLE = no TAP_DANCE_ENABLE = no
EXTRAFLAGS += -flto # Make the hex smaller EXTRAFLAGS += -flto # Make the hex smaller
LAYOUTS = planck_mit LAYOUTS = planck_mit