|
|
@ -155,6 +155,7 @@ void matrix_init(void) |
|
|
|
|
|
|
|
uint8_t _matrix_scan(void) |
|
|
|
{ |
|
|
|
bool changed = false; |
|
|
|
// Right hand is stored after the left in the matirx so, we need to offset it |
|
|
|
int offset = isLeftHand ? 0 : (ROWS_PER_HAND); |
|
|
|
|
|
|
@ -163,6 +164,7 @@ uint8_t _matrix_scan(void) |
|
|
|
_delay_us(30); // without this wait read unstable value. |
|
|
|
matrix_row_t cols = read_cols(); |
|
|
|
if (matrix_debouncing[i+offset] != cols) { |
|
|
|
changed = true; |
|
|
|
matrix_debouncing[i+offset] = cols; |
|
|
|
debouncing = DEBOUNCE; |
|
|
|
} |
|
|
@ -179,7 +181,7 @@ uint8_t _matrix_scan(void) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return 1; |
|
|
|
return changed; |
|
|
|
} |
|
|
|
|
|
|
|
#ifdef USE_MATRIX_I2C |
|
|
@ -237,16 +239,17 @@ int serial_transaction(int master_changed) { |
|
|
|
|
|
|
|
uint8_t matrix_scan(void) |
|
|
|
{ |
|
|
|
bool changed = false; |
|
|
|
if (is_master) { |
|
|
|
matrix_master_scan(); |
|
|
|
changed |= matrix_master_scan(); |
|
|
|
}else{ |
|
|
|
matrix_slave_scan(); |
|
|
|
changed |= matrix_slave_scan(); |
|
|
|
int offset = (isLeftHand) ? ROWS_PER_HAND : 0; |
|
|
|
memcpy(&matrix[offset], |
|
|
|
(void *)serial_master_buffer, SERIAL_MASTER_BUFFER_LENGTH); |
|
|
|
matrix_scan_quantum(); |
|
|
|
} |
|
|
|
return 1; |
|
|
|
return (uint8_t) changed; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -297,8 +300,8 @@ uint8_t matrix_master_scan(void) { |
|
|
|
return ret; |
|
|
|
} |
|
|
|
|
|
|
|
void matrix_slave_scan(void) { |
|
|
|
_matrix_scan(); |
|
|
|
uint8_t matrix_slave_scan(void) { |
|
|
|
int ret = _matrix_scan(); |
|
|
|
|
|
|
|
int offset = (isLeftHand) ? 0 : ROWS_PER_HAND; |
|
|
|
|
|
|
@ -314,7 +317,7 @@ void matrix_slave_scan(void) { |
|
|
|
for (int i = 0; i < ROWS_PER_HAND; ++i) { |
|
|
|
#ifdef SERIAL_USE_MULTI_TRANSACTION |
|
|
|
if( serial_slave_buffer[i] != matrix[offset+i] ) |
|
|
|
change = 1; |
|
|
|
change = 1; |
|
|
|
#endif |
|
|
|
serial_slave_buffer[i] = matrix[offset+i]; |
|
|
|
} |
|
|
@ -322,6 +325,7 @@ void matrix_slave_scan(void) { |
|
|
|
slave_buffer_change_count += change; |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
return ret; |
|
|
|
} |
|
|
|
|
|
|
|
bool matrix_is_modified(void) |
|
|
|