Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Keyboard/fix work louder micro #18968

Merged
merged 8 commits into from
Jan 1, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions keyboards/work_louder/micro/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,6 @@
#define ENCODERS_PAD_B \
{ D6, B1 }

#define WORK_LOUDER_LED_PIN_1 B7
#define WORK_LOUDER_LED_PIN_2 B6
#define WORK_LOUDER_LED_PIN_1 B6
#define WORK_LOUDER_LED_PIN_2 B7
#define WORK_LOUDER_LED_PIN_3 B5
63 changes: 36 additions & 27 deletions keyboards/work_louder/micro/keymaps/via/keymap.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,30 +4,29 @@
#include QMK_KEYBOARD_H

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
LAYOUT(
KC_MPLY, KC_9, KC_0, KC_NO,
KC_5, KC_6, KC_7, KC_8,
KC_1, KC_2, KC_3, KC_4,
TO(1), KC_DOT, KC_COMM, USER09
[0] = LAYOUT(
KC_MPLY, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
RGB_TOG, XXXXXXX, XXXXXXX, 0x5011
),
LAYOUT(
_______, _______, _______, _______,
_______, _______, _______, _______,
_______, _______, _______, _______,
TO(2), _______, _______, _______

[1] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, 0x5012
),
LAYOUT(
_______, _______, _______, _______,
_______, _______, _______, _______,
_______, _______, _______, _______,
TO(3), _______, _______, _______
[2] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, 0x5013
),
LAYOUT(
_______, _______, _______, _______,
_______, _______, _______, _______,
_______, _______, _______, _______,
TO(0), _______, _______, _______
[3] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
USER00, USER01, USER03, USER05,
XXXXXXX, USER02, USER04, USER06,
XXXXXXX, XXXXXXX, XXXXXXX, 0x5010
)
};

Expand All @@ -51,22 +50,28 @@ typedef union {
work_louder_config_t work_louder_config;

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) {
case USER09:
if (record->event.pressed) {
work_louder_config.led_level++;
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));
eeconfig_update_user(work_louder_config.raw);
layer_state_set_kb(layer_state);
}
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;
}
Expand All @@ -86,7 +91,11 @@ void eeconfig_init_user(void) {
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_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);
}
4 changes: 3 additions & 1 deletion keyboards/work_louder/micro/keymaps/via/rules.mk
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
VIA_ENABLE = yes
VIA_ENABLE = yes
ENCODER_MAP_ENABLE = yes
MAGIC_ENABLE = no
SPACE_CADET_ENABLE = no
73 changes: 27 additions & 46 deletions keyboards/work_louder/micro/micro.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,22 +49,28 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
#endif

void work_louder_micro_led_1_on(void) {
setPinOutput(WORK_LOUDER_LED_PIN_1);
writePin(WORK_LOUDER_LED_PIN_1, true);
}
void work_louder_micro_led_2_on(void) {
setPinOutput(WORK_LOUDER_LED_PIN_2);
writePin(WORK_LOUDER_LED_PIN_2, true);
}
void work_louder_micro_led_3_on(void) {
setPinOutput(WORK_LOUDER_LED_PIN_3);
writePin(WORK_LOUDER_LED_PIN_3, true);
}

void work_louder_micro_led_1_off(void) {
setPinInput(WORK_LOUDER_LED_PIN_1);
writePin(WORK_LOUDER_LED_PIN_1, false);
}
void work_louder_micro_led_2_off(void) {
setPinInput(WORK_LOUDER_LED_PIN_2);
writePin(WORK_LOUDER_LED_PIN_2, false);
}
void work_louder_micro_led_3_off(void) {
setPinInput(WORK_LOUDER_LED_PIN_3);
writePin(WORK_LOUDER_LED_PIN_3, false);
}

Expand All @@ -81,15 +87,15 @@ void work_louder_micro_led_all_off(void) {
}

void work_louder_micro_led_1_set(uint8_t n) {
#if WORK_LOUDER_LED_PIN_1 == B7
OCR1C = n;
#if WORK_LOUDER_LED_PIN_1 == B6
OCR1B = n;
#else
n ? work_louder_micro_led_1_on() : work_louder_micro_led_1_off();
#endif
}
void work_louder_micro_led_2_set(uint8_t n) {
#if WORK_LOUDER_LED_PIN_2 == B6
OCR1B = n;
#if WORK_LOUDER_LED_PIN_2 == B7
OCR1C = n;
#else
n ? work_louder_micro_led_2_on() : work_louder_micro_led_2_off();
#endif
Expand All @@ -108,49 +114,16 @@ void work_louder_micro_led_all_set(uint8_t n) {
work_louder_micro_led_3_set(n);
}

#ifdef DEFER_EXEC_ENABLE
uint32_t startup_animation(uint32_t trigger_time, void *cb_arg) {
static uint8_t index = 0;

switch (index) {
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;
void keyboard_post_init_kb(void) {
TCCR1A = 0b10101001; // set and configure fast PWM
TCCR1B = 0b00001001; // set and configure fast PWM

keyboard_post_init_user();
}
#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);
work_louder_micro_led_1_on();
wait_ms(100);
Expand All @@ -164,7 +137,15 @@ void matrix_init_kb(void) {
wait_ms(100);
work_louder_micro_led_3_off();
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();
}
1 change: 1 addition & 0 deletions keyboards/work_louder/micro/micro.h
Original file line number Diff line number Diff line change
Expand Up @@ -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_all_set(uint8_t n);
void work_louder_led_init_animation(void);
2 changes: 0 additions & 2 deletions keyboards/work_louder/micro/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,3 @@ RGB_MATRIX_DRIVER = WS2812

SRC += rgb_functions.c \
matrix.c

DEFERRED_EXEC_ENABLE = yes