Keyboard/fix work louder micro (#18968)

This commit is contained in:
Drashna Jaelre 2022-12-31 16:57:15 -08:00 committed by GitHub
parent 2ae215514a
commit b4d5c22ed4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 69 additions and 78 deletions

View file

@ -84,6 +84,6 @@
#define ENCODERS_PAD_B \ #define ENCODERS_PAD_B \
{ D6, B1 } { D6, B1 }
#define WORK_LOUDER_LED_PIN_1 B7 #define WORK_LOUDER_LED_PIN_1 B6
#define WORK_LOUDER_LED_PIN_2 B6 #define WORK_LOUDER_LED_PIN_2 B7
#define WORK_LOUDER_LED_PIN_3 B5 #define WORK_LOUDER_LED_PIN_3 B5

View file

@ -4,30 +4,29 @@
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
LAYOUT( [0] = LAYOUT(
KC_MPLY, KC_9, KC_0, KC_NO, KC_MPLY, XXXXXXX, XXXXXXX, XXXXXXX,
KC_5, KC_6, KC_7, KC_8, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
KC_1, KC_2, KC_3, KC_4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
TO(1), KC_DOT, KC_COMM, USER09 RGB_TOG, XXXXXXX, XXXXXXX, 0x5011
), ),
LAYOUT( [1] = LAYOUT(
_______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
_______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
_______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
TO(2), _______, _______, _______ XXXXXXX, XXXXXXX, XXXXXXX, 0x5012
), ),
LAYOUT( [2] = LAYOUT(
_______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
_______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
_______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
TO(3), _______, _______, _______ XXXXXXX, XXXXXXX, XXXXXXX, 0x5013
), ),
LAYOUT( [3] = LAYOUT(
_______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
_______, _______, _______, _______, USER00, USER01, USER03, USER05,
_______, _______, _______, _______, XXXXXXX, USER02, USER04, USER06,
TO(0), _______, _______, _______ XXXXXXX, XXXXXXX, XXXXXXX, 0x5010
) )
}; };
@ -51,22 +50,28 @@ typedef union {
work_louder_config_t work_louder_config; work_louder_config_t work_louder_config;
bool process_record_user(uint16_t keycode, keyrecord_t *record) { bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#ifdef CONSOLE_ENABLE
uprintf("KL: kc: 0x%04X, col: %2u, row: %2u, pressed: %b, time: %5u, int: %b, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count);
#endif
switch (keycode) { switch (keycode) {
case USER09: case USER09:
if (record->event.pressed) { if (record->event.pressed) {
work_louder_config.led_level++; work_louder_config.led_level++;
if (work_louder_config.led_level > 4) { if (work_louder_config.led_level > 4) {
work_louder_config.led_level = 0; work_louder_config.led_level = 1;
} }
work_louder_micro_led_all_set((uint8_t)(work_louder_config.led_level * 255 / 4)); work_louder_micro_led_all_set((uint8_t)(work_louder_config.led_level * 255 / 4));
eeconfig_update_user(work_louder_config.raw); eeconfig_update_user(work_louder_config.raw);
layer_state_set_kb(layer_state); layer_state_set_kb(layer_state);
} }
break; break;
case 0x5000 ... 0x500F:
if (record->event.pressed) {
layer_move(keycode - 0x5000);
}
return false; break;
case 0x5010 ... 0x501F:
if (record->event.pressed) {
layer_move(keycode - 0x5010);
}
return false; break;
} }
return true; return true;
} }
@ -86,7 +91,11 @@ void eeconfig_init_user(void) {
eeconfig_update_user(work_louder_config.raw); eeconfig_update_user(work_louder_config.raw);
} }
void matrix_init_user(void) { void keyboard_post_init_user(void) {
work_louder_config.raw = eeconfig_read_user(); work_louder_config.raw = eeconfig_read_user();
work_louder_micro_led_all_set((uint8_t)(work_louder_config.led_level * 255 / 4)); work_louder_micro_led_all_set((uint8_t)(work_louder_config.led_level * 255 / 4));
} }
void suspend_wakeup_init_user(void) {
layer_state_set_user(layer_state);
}

View file

@ -1,2 +1,4 @@
VIA_ENABLE = yes VIA_ENABLE = yes
ENCODER_MAP_ENABLE = yes ENCODER_MAP_ENABLE = yes
MAGIC_ENABLE = no
SPACE_CADET_ENABLE = no

View file

@ -49,22 +49,28 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
#endif #endif
void work_louder_micro_led_1_on(void) { void work_louder_micro_led_1_on(void) {
setPinOutput(WORK_LOUDER_LED_PIN_1);
writePin(WORK_LOUDER_LED_PIN_1, true); writePin(WORK_LOUDER_LED_PIN_1, true);
} }
void work_louder_micro_led_2_on(void) { void work_louder_micro_led_2_on(void) {
setPinOutput(WORK_LOUDER_LED_PIN_2);
writePin(WORK_LOUDER_LED_PIN_2, true); writePin(WORK_LOUDER_LED_PIN_2, true);
} }
void work_louder_micro_led_3_on(void) { void work_louder_micro_led_3_on(void) {
setPinOutput(WORK_LOUDER_LED_PIN_3);
writePin(WORK_LOUDER_LED_PIN_3, true); writePin(WORK_LOUDER_LED_PIN_3, true);
} }
void work_louder_micro_led_1_off(void) { void work_louder_micro_led_1_off(void) {
setPinInput(WORK_LOUDER_LED_PIN_1);
writePin(WORK_LOUDER_LED_PIN_1, false); writePin(WORK_LOUDER_LED_PIN_1, false);
} }
void work_louder_micro_led_2_off(void) { void work_louder_micro_led_2_off(void) {
setPinInput(WORK_LOUDER_LED_PIN_2);
writePin(WORK_LOUDER_LED_PIN_2, false); writePin(WORK_LOUDER_LED_PIN_2, false);
} }
void work_louder_micro_led_3_off(void) { void work_louder_micro_led_3_off(void) {
setPinInput(WORK_LOUDER_LED_PIN_3);
writePin(WORK_LOUDER_LED_PIN_3, false); writePin(WORK_LOUDER_LED_PIN_3, false);
} }
@ -81,15 +87,15 @@ void work_louder_micro_led_all_off(void) {
} }
void work_louder_micro_led_1_set(uint8_t n) { void work_louder_micro_led_1_set(uint8_t n) {
#if WORK_LOUDER_LED_PIN_1 == B7 #if WORK_LOUDER_LED_PIN_1 == B6
OCR1C = n; OCR1B = n;
#else #else
n ? work_louder_micro_led_1_on() : work_louder_micro_led_1_off(); n ? work_louder_micro_led_1_on() : work_louder_micro_led_1_off();
#endif #endif
} }
void work_louder_micro_led_2_set(uint8_t n) { void work_louder_micro_led_2_set(uint8_t n) {
#if WORK_LOUDER_LED_PIN_2 == B6 #if WORK_LOUDER_LED_PIN_2 == B7
OCR1B = n; OCR1C = n;
#else #else
n ? work_louder_micro_led_2_on() : work_louder_micro_led_2_off(); n ? work_louder_micro_led_2_on() : work_louder_micro_led_2_off();
#endif #endif
@ -108,49 +114,16 @@ void work_louder_micro_led_all_set(uint8_t n) {
work_louder_micro_led_3_set(n); work_louder_micro_led_3_set(n);
} }
#ifdef DEFER_EXEC_ENABLE void keyboard_post_init_kb(void) {
uint32_t startup_animation(uint32_t trigger_time, void *cb_arg) { TCCR1A = 0b10101001; // set and configure fast PWM
static uint8_t index = 0; TCCR1B = 0b00001001; // set and configure fast PWM
switch (index) { keyboard_post_init_user();
case 0:
work_louder_micro_led_1_on();
break;
case 1:
work_louder_micro_led_2_on();
break;
case 2:
work_louder_micro_led_3_on();
break;
case 3:
work_louder_micro_led_1_off();
break;
case 4:
work_louder_micro_led_2_off();
break;
case 5:
work_louder_micro_led_3_off();
break;
default:
return 0;
}
index++;
return 100;
} }
#endif
void matrix_init_kb(void) { void work_louder_led_init_animation(void) {
work_louder_micro_led_all_off();
setPinOutput(WORK_LOUDER_LED_PIN_1); // left led
writePin(WORK_LOUDER_LED_PIN_1, false);
setPinOutput(WORK_LOUDER_LED_PIN_2); // middle led
writePin(WORK_LOUDER_LED_PIN_2, false);
setPinOutput(WORK_LOUDER_LED_PIN_3); // right led
writePin(WORK_LOUDER_LED_PIN_3, false);
#ifdef DEFER_EXEC_ENABLE
defer_exec(500, startup_animation, NULL);
#else
wait_ms(500); wait_ms(500);
work_louder_micro_led_1_on(); work_louder_micro_led_1_on();
wait_ms(100); wait_ms(100);
@ -164,7 +137,15 @@ void matrix_init_kb(void) {
wait_ms(100); wait_ms(100);
work_louder_micro_led_3_off(); work_louder_micro_led_3_off();
wait_ms(200); wait_ms(200);
#endif }
matrix_init_user();
void suspend_power_down_kb(void) {
suspend_power_down_user();
work_louder_micro_led_all_off();
}
void suspend_wakeup_init_kb(void) {
work_louder_led_init_animation();
suspend_wakeup_init_user();
} }

View file

@ -20,3 +20,4 @@ extern void work_louder_micro_led_2_set(uint8_t n);
extern void work_louder_micro_led_3_set(uint8_t n); extern void work_louder_micro_led_3_set(uint8_t n);
extern void work_louder_micro_led_all_set(uint8_t n); extern void work_louder_micro_led_all_set(uint8_t n);
void work_louder_led_init_animation(void);

View file

@ -2,5 +2,3 @@ RGB_MATRIX_DRIVER = WS2812
SRC += rgb_functions.c \ SRC += rgb_functions.c \
matrix.c matrix.c
DEFERRED_EXEC_ENABLE = yes