Directly connected LED Matrix support.

This adds support for LEDs that are directly connected to the MCU, either in a matrix or to single pins.
This commit is contained in:
skullY
2019-10-24 10:34:53 -07:00
parent a5a31a5fc0
commit f8896d8b92
21 changed files with 478 additions and 81 deletions
@@ -0,0 +1,39 @@
#include QMK_KEYBOARD_H
enum custom_keycodes {
UP_URL = SAFE_RANGE
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
LAYOUT_ortho_4x4(
KC_0, KC_1, KC_2, KC_3,
KC_4, KC_5, KC_6, KC_7,
KC_8, KC_9, KC_A, KC_B,
KC_C, RESET, KC_E, BL_STEP
)
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case UP_URL:
if (record->event.pressed) {
SEND_STRING("http://1upkeyboards.com");
}
return false;
break;
}
return true;
}
#ifdef ENCODER_ENABLE
#include "encoder.h"
void encoder_update_user(int8_t index, bool clockwise) {
if (index == 0) { /* First encoder */
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
}
}
#endif
-1
View File
@@ -1 +0,0 @@
#include "sweet16.h"
-30
View File
@@ -1,30 +0,0 @@
#pragma once
#include "quantum.h"
// Any changes to the layout names and/or definitions must also be made to info.json
#define LAYOUT_ortho_4x4( \
K00, K01, K02, K03, \
K10, K11, K12, K13, \
K20, K21, K22, K23, \
K30, K31, K32, K33 \
) { \
{ K00, K01, K02, K03 }, \
{ K10, K11, K12, K13 }, \
{ K20, K21, K22, K23 }, \
{ K30, K31, K32, K33 } \
}
#define LAYOUT_numpad_4x4( \
K00, K01, K02, K03, \
K10, K11, K12, \
K20, K21, K22, K23, \
K31, K32 \
) { \
{ K00, K01, K02, K03 }, \
{ K10, K11, K12, KC_NO }, \
{ K20, K21, K22, K23 }, \
{ KC_NO, K31, K32, KC_NO } \
}
@@ -17,6 +17,14 @@
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
/* Backlight configuration
*/
#define LED_MATRIX_ROWS 4
#define LED_MATRIX_ROW_PINS { B1, B3, B2, B4 }
#define LED_MATRIX_COLS 4
#define LED_MATRIX_COL_PINS { B6, D0, C6, D7 }
#define LED_DRIVER_LED_COUNT 16
/* Encoder pins */
#define ENCODERS_PAD_A { F4 }
#define ENCODERS_PAD_B { F5 }
@@ -3,6 +3,8 @@ BOOTLOADER = caterina
LINK_TIME_OPTIMIZATION_ENABLE=yes
## Features
BACKLIGHT_ENABLE = yes
LED_MATRIX_ENABLE = pinmatrix
CONSOLE_ENABLE = yes
## On a Pro Micro you have to choose between underglow and the rotary encoder.
@@ -14,6 +14,14 @@
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION ROW2COL
/* Backlight configuration
*/
#define LED_MATRIX_ROWS 4
#define LED_MATRIX_ROW_PINS { B13, B14, B15, B1 }
#define LED_MATRIX_COLS 4
#define LED_MATRIX_COL_PINS { B9, B6, B4, B3 }
#define LED_DRIVER_LED_COUNT 16
/* Encoder pins */
#define ENCODERS_PAD_A { A2 }
#define ENCODERS_PAD_B { A1 }
@@ -2,5 +2,7 @@ MCU = STM32F303
## Features
CONSOLE_ENABLE = yes
BACKLIGHT_ENABLE = yes
LED_MATRIX_ENABLE = pinmatrix
ENCODER_ENABLE = yes
AUDIO_ENABLE = yes
+6
View File
@@ -22,3 +22,9 @@
{ NO_PIN, B2 } \
}
#define UNUSED_PINS
/* Backlight configuration
*/
#define BACKLIGHT_LEVELS 10
#define LED_MATRIX_PINS { A2, B5, A1, B4, B12, B10, A15, A6, B0, B3 }
#define LED_DRIVER_LED_COUNT 10
+2
View File
@@ -6,5 +6,7 @@ EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes
LED_MATRIX_ENABLE = pins
RGBLIGHT_ENABLE = no
AUDIO_ENABLE = yes