mirror of
https://github.com/firewalkwithm3/qmk_firmware.git
synced 2024-11-22 19:40:29 +08:00
parent
897f5b2f9d
commit
1ae6011cef
|
@ -37,10 +37,8 @@ static const io_pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
|
||||||
/* matrix state */
|
/* matrix state */
|
||||||
#if DIODE_DIRECTION == COL2ROW
|
#if DIODE_DIRECTION == COL2ROW
|
||||||
static matrix_row_t matrix[MATRIX_ROWS];
|
static matrix_row_t matrix[MATRIX_ROWS];
|
||||||
static matrix_row_t debouncing_matrix[MATRIX_ROWS];
|
|
||||||
#else
|
#else
|
||||||
static matrix_col_t matrix[MATRIX_COLS];
|
static matrix_col_t matrix[MATRIX_COLS];
|
||||||
static matrix_col_t debouncing_matrix[MATRIX_COLS];
|
|
||||||
#endif
|
#endif
|
||||||
static int8_t debouncing_delay = -1;
|
static int8_t debouncing_delay = -1;
|
||||||
|
|
||||||
|
@ -99,6 +97,7 @@ void matrix_init(void) {
|
||||||
|
|
||||||
#if DIODE_DIRECTION == COL2ROW
|
#if DIODE_DIRECTION == COL2ROW
|
||||||
uint8_t matrix_scan(void) {
|
uint8_t matrix_scan(void) {
|
||||||
|
static matrix_row_t debouncing_matrix[MATRIX_ROWS];
|
||||||
for (int8_t r = MATRIX_ROWS - 1; r >= 0; --r) {
|
for (int8_t r = MATRIX_ROWS - 1; r >= 0; --r) {
|
||||||
toggle_row(r);
|
toggle_row(r);
|
||||||
matrix_row_t state = read_cols();
|
matrix_row_t state = read_cols();
|
||||||
|
@ -146,6 +145,7 @@ matrix_row_t matrix_get_row(uint8_t row) {
|
||||||
|
|
||||||
#else
|
#else
|
||||||
uint8_t matrix_scan(void) {
|
uint8_t matrix_scan(void) {
|
||||||
|
static matrix_col_t debouncing_matrix[MATRIX_COLS];
|
||||||
for (int8_t c = MATRIX_COLS - 1; c >= 0; --c) {
|
for (int8_t c = MATRIX_COLS - 1; c >= 0; --c) {
|
||||||
toggle_col(c);
|
toggle_col(c);
|
||||||
matrix_col_t state = read_rows();
|
matrix_col_t state = read_rows();
|
||||||
|
|
|
@ -96,17 +96,15 @@ void keyboard_init(void) {
|
||||||
|
|
||||||
/* does routine keyboard jobs */
|
/* does routine keyboard jobs */
|
||||||
void keyboard_task(void) {
|
void keyboard_task(void) {
|
||||||
static matrix_row_t previous_matrix[MATRIX_ROWS];
|
static uint8_t led_status;
|
||||||
#ifdef MATRIX_HAS_GHOST
|
|
||||||
static matrix_row_t deghosting_matrix[MATRIX_ROWS];
|
|
||||||
#endif
|
|
||||||
static uint8_t led_status = 0;
|
|
||||||
matrix_scan();
|
matrix_scan();
|
||||||
for (int8_t r = MATRIX_ROWS - 1; r >= 0; --r) {
|
for (int8_t r = MATRIX_ROWS - 1; r >= 0; --r) {
|
||||||
|
static matrix_row_t previous_matrix[MATRIX_ROWS];
|
||||||
matrix_row_t state = matrix_get_row(r);
|
matrix_row_t state = matrix_get_row(r);
|
||||||
matrix_row_t changes = state ^ previous_matrix[r];
|
matrix_row_t changes = state ^ previous_matrix[r];
|
||||||
if (changes) {
|
if (changes) {
|
||||||
#ifdef MATRIX_HAS_GHOST
|
#ifdef MATRIX_HAS_GHOST
|
||||||
|
static matrix_row_t deghosting_matrix[MATRIX_ROWS];
|
||||||
if (is_row_ghosting(r)) {
|
if (is_row_ghosting(r)) {
|
||||||
/* debugs the deghosting mechanism */
|
/* debugs the deghosting mechanism */
|
||||||
/* doesn't update previous_matrix until the ghosting has stopped
|
/* doesn't update previous_matrix until the ghosting has stopped
|
||||||
|
|
Loading…
Reference in a new issue