X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;f=keyboard%2Fergodox%2Fmatrix.c;h=e50932c92c25ffc752fc4a7098d5cb6e82c2599f;hb=27e3da508e0933a4a3e8bcae308773ca22548f3b;hp=b75d7c57a038e14ae70955f74717baa02ef7654c;hpb=5329bbefee10503832d419733e6cfecb97e712cb;p=max%2Ftmk_keyboard.git diff --git a/keyboard/ergodox/matrix.c b/keyboard/ergodox/matrix.c index b75d7c57..e50932c9 100644 --- a/keyboard/ergodox/matrix.c +++ b/keyboard/ergodox/matrix.c @@ -105,48 +105,48 @@ uint8_t matrix_scan(void) #ifdef KEYMAP_CUB uint8_t layer = biton32(layer_state); - if (layer == 1) { - ergodox_left_led_1_on(); - ergodox_left_led_2_off(); - ergodox_left_led_3_off(); - } else if (layer == 2) { - ergodox_left_led_1_off(); - ergodox_left_led_2_on(); - ergodox_left_led_3_off(); - } else if (layer == 3) { - ergodox_left_led_1_off(); - ergodox_left_led_2_off(); - ergodox_left_led_3_on(); - } else if (layer == 4) { - ergodox_left_led_1_on(); - ergodox_left_led_2_off(); - ergodox_left_led_3_on(); - } else if (layer == 5) { - ergodox_left_led_1_on(); - ergodox_left_led_2_on(); - ergodox_left_led_3_off(); - } else if (layer == 6) { - ergodox_left_led_1_off(); - ergodox_left_led_2_on(); - ergodox_left_led_3_on(); - } else if (layer == 7) { - ergodox_left_led_1_on(); - ergodox_left_led_2_on(); - ergodox_left_led_3_on(); - } else { - ergodox_left_led_1_off(); - ergodox_left_led_2_off(); - ergodox_left_led_3_off(); + ergodox_board_led_off(); + ergodox_left_led_1_off(); + ergodox_left_led_2_off(); + ergodox_left_led_3_off(); + switch (layer) { + case 1: + // all + ergodox_left_led_1_on(); + ergodox_left_led_2_on(); + ergodox_left_led_3_on(); + break; + case 2: + // blue + ergodox_left_led_2_on(); + break; + case 8: + // blue and green + ergodox_left_led_2_on(); + // break missed intentionally + case 3: + // green + ergodox_left_led_3_on(); + break; + case 6: + ergodox_board_led_on(); + // break missed intentionally + case 4: + case 5: + case 7: + // red + ergodox_left_led_1_on(); + break; + default: + // none + break; } - // not actually needed because we already calling init_mcp23018() in next line mcp23018_status = ergodox_left_leds_update(); - #endif for (uint8_t i = 0; i < MATRIX_ROWS; i++) { select_row(i); - _delay_us(30); // without this wait read unstable value. matrix_row_t cols = read_cols(i); if (matrix_debouncing[i] != cols) { matrix_debouncing[i] = cols; @@ -246,6 +246,7 @@ static matrix_row_t read_cols(uint8_t row) return data; } } else { + _delay_us(30); // without this wait read unstable value. // read from teensy return (PINF&(1<<0) ? 0 : (1<<0)) |