diff options
| -rw-r--r-- | keyboards/dk60/dk60.c | 31 | ||||
| -rw-r--r-- | keyboards/dk60/dk60.h | 65 | ||||
| -rw-r--r-- | keyboards/dk60/keymaps/default/keymap.c | 36 |
3 files changed, 97 insertions, 35 deletions
diff --git a/keyboards/dk60/dk60.c b/keyboards/dk60/dk60.c index 40f24c287..93aeb33b4 100644 --- a/keyboards/dk60/dk60.c +++ b/keyboards/dk60/dk60.c | |||
| @@ -1,13 +1,34 @@ | |||
| 1 | #include "dk60.h" | 1 | #include "dk60.h" |
| 2 | 2 | ||
| 3 | void led_set_kb(uint8_t usb_led) { | 3 | void dk60_blink_all_leds(void) |
| 4 | // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here | 4 | { |
| 5 | dk60_led_all_off(); | ||
| 6 | dk60_led_all_on(); | ||
| 7 | _delay_ms(500); | ||
| 8 | dk60_led_all_off(); | ||
| 9 | } | ||
| 10 | |||
| 11 | void matrix_init_kb(void) { | ||
| 12 | led_init_ports(); | ||
| 13 | dk60_blink_all_leds(); | ||
| 14 | |||
| 15 | matrix_init_user(); | ||
| 16 | } | ||
| 17 | |||
| 18 | void led_init_ports(void) { | ||
| 19 | // * Set our LED pins as output | ||
| 20 | DDRE |= (1<<6); | ||
| 21 | DDRF |= (1<<0); | ||
| 22 | } | ||
| 5 | 23 | ||
| 6 | if (usb_led & (1<<USB_LED_CAPS_LOCK)) { | 24 | void led_set_kb(uint8_t usb_led) { |
| 25 | if (usb_led & (1<<USB_LED_CAPS_LOCK)) { | ||
| 26 | // Turn capslock on | ||
| 7 | dk60_caps_led_on(); | 27 | dk60_caps_led_on(); |
| 8 | } else { | 28 | } else { |
| 29 | // Turn capslock off | ||
| 9 | dk60_caps_led_off(); | 30 | dk60_caps_led_off(); |
| 10 | } | 31 | } |
| 11 | 32 | ||
| 12 | led_set_user(usb_led); | 33 | led_set_user(usb_led); |
| 13 | } | 34 | } |
diff --git a/keyboards/dk60/dk60.h b/keyboards/dk60/dk60.h index 572100f3a..859e88e03 100644 --- a/keyboards/dk60/dk60.h +++ b/keyboards/dk60/dk60.h | |||
| @@ -1,29 +1,42 @@ | |||
| 1 | #ifndef DK60_H | 1 | #ifndef DK60_H |
| 2 | #define DK60_H | 2 | #define DK60_H |
| 3 | 3 | ||
| 4 | #include "quantum.h" | 4 | #include "quantum.h" |
| 5 | #include "led.h" | 5 | #include <util/delay.h> |
| 6 | 6 | // #include "led.h" | |
| 7 | inline void dk60_caps_led_on(void) { DDRE |= (1<<6); PORTE &= ~(1<<6); } | 7 | |
| 8 | inline void dk60_esc_led_on(void) { DDRF |= (1<<0); PORTF &= ~(1<<0); } | 8 | inline void dk60_caps_led_on(void) { PORTE |= (1<<6); } |
| 9 | 9 | inline void dk60_esc_led_on(void) { PORTF |= (1<<0); } | |
| 10 | inline void dk60_caps_led_off(void) { DDRE &= ~(1<<6); PORTE &= ~(1<<6); } | 10 | |
| 11 | inline void dk60_esc_led_off(void) { DDRF &= ~(1<<0); PORTF &= ~(1<<0); } | 11 | inline void dk60_caps_led_off(void) { PORTE &= ~(1<<6); } |
| 12 | 12 | inline void dk60_esc_led_off(void) { PORTF &= ~(1<<0); } | |
| 13 | #define ___ KC_NO | 13 | |
| 14 | 14 | inline void dk60_led_all_on(void) | |
| 15 | #define KEYMAP( \ | 15 | { |
| 16 | K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K4B, K4A, \ | 16 | dk60_caps_led_on(); |
| 17 | K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K4C, \ | 17 | dk60_esc_led_on(); |
| 18 | K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ | 18 | } |
| 19 | K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ | 19 | |
| 20 | K41, K42, K45, K48, K49 \ | 20 | inline void dk60_led_all_off(void) |
| 21 | ) { \ | 21 | { |
| 22 | { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C }, \ | 22 | dk60_caps_led_off(); |
| 23 | { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C }, \ | 23 | dk60_esc_led_off(); |
| 24 | { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C }, \ | 24 | } |
| 25 | { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C }, \ | 25 | |
| 26 | { ___, K41, K42, ___, ___, K45, ___, ___, K48, K49, K4A, K4B, K4C } \ | 26 | #define ___ KC_NO |
| 27 | } | 27 | |
| 28 | #define KEYMAP( \ | ||
| 29 | K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K4B, K4A, \ | ||
| 30 | K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K4C, \ | ||
| 31 | K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ | ||
| 32 | K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ | ||
| 33 | K41, K42, K45, K48, K49 \ | ||
| 34 | ) { \ | ||
| 35 | { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C }, \ | ||
| 36 | { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C }, \ | ||
| 37 | { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C }, \ | ||
| 38 | { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C }, \ | ||
| 39 | { ___, K41, K42, ___, ___, K45, ___, ___, K48, K49, K4A, K4B, K4C } \ | ||
| 40 | } | ||
| 28 | 41 | ||
| 29 | #endif | 42 | #endif |
diff --git a/keyboards/dk60/keymaps/default/keymap.c b/keyboards/dk60/keymaps/default/keymap.c index e69ed9821..a6a3b83f0 100644 --- a/keyboards/dk60/keymaps/default/keymap.c +++ b/keyboards/dk60/keymaps/default/keymap.c | |||
| @@ -1,8 +1,20 @@ | |||
| 1 | #include "dk60.h" | 1 | #include "dk60.h" |
| 2 | #include "action_layer.h" | 2 | #include "action_layer.h" |
| 3 | 3 | ||
| 4 | #define _DEFAULT 0 | 4 | enum planck_layers { |
| 5 | #define _FN 1 | 5 | _QWERTY, |
| 6 | _FN, | ||
| 7 | _DVORAK, | ||
| 8 | _LOWER, | ||
| 9 | _RAISE, | ||
| 10 | _PLOVER, | ||
| 11 | _ADJUST | ||
| 12 | }; | ||
| 13 | |||
| 14 | enum planck_keycodes { | ||
| 15 | QWERTY = SAFE_RANGE, | ||
| 16 | FN | ||
| 17 | }; | ||
| 6 | 18 | ||
| 7 | // Fillers to make layering more clear | 19 | // Fillers to make layering more clear |
| 8 | #define ______ KC_TRNS | 20 | #define ______ KC_TRNS |
| @@ -21,11 +33,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 21 | * |LGUI | LAlt | Space | RAlt |RGUI | | 33 | * |LGUI | LAlt | Space | RAlt |RGUI | |
| 22 | * `-----------------------------------------------------------------' | 34 | * `-----------------------------------------------------------------' |
| 23 | */ | 35 | */ |
| 24 | [_DEFAULT] = KEYMAP( /* Basic QWERTY */ | 36 | [_QWERTY] = KEYMAP( /* Basic QWERTY */ |
| 25 | KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \ | 37 | KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \ |
| 26 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,KC_BSPC, \ | 38 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,KC_BSPC, \ |
| 27 | KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ | 39 | KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ |
| 28 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), \ | 40 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, FN, \ |
| 29 | KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI \ | 41 | KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI \ |
| 30 | ), | 42 | ), |
| 31 | 43 | ||
| @@ -50,3 +62,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 50 | ______, ______, ______, KC_MSTP, ______ \ | 62 | ______, ______, ______, KC_MSTP, ______ \ |
| 51 | ) | 63 | ) |
| 52 | }; | 64 | }; |
| 65 | |||
| 66 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 67 | switch (keycode) { | ||
| 68 | case FN: | ||
| 69 | if (record->event.pressed) { | ||
| 70 | layer_on(_FN); | ||
| 71 | dk60_esc_led_on(); | ||
| 72 | } else { | ||
| 73 | layer_off(_FN); | ||
| 74 | dk60_esc_led_off(); | ||
| 75 | } | ||
| 76 | return false; | ||
| 77 | break; | ||
| 78 | } | ||
| 79 | return true; | ||
| 80 | } | ||
