gboards/gergoplex: fix matrix pins (#18999)

This commit is contained in:
Ryan 2022-11-09 02:49:50 +11:00 committed by GitHub
parent 9daf77b593
commit d11676566e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 16 deletions

View file

@ -33,8 +33,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
* COLS: AVR pins used for columns, left to right * COLS: AVR pins used for columns, left to right
* ROWS: AVR pins used for rows, top to bottom * ROWS: AVR pins used for rows, top to bottom
*/ */
#define MATRIX_ROW_PINS { F6, F5, F4, F1 } #define MATRIX_COL_PINS { F6, F5, F4, F1 }
#define MATRIX_COL_PINS { B1, B2, B3, D2, D3 } #define MATRIX_ROW_PINS { B1, B2, B3, D2, D3 }
#define IGNORE_MOD_TAP_INTERRUPT #define IGNORE_MOD_TAP_INTERRUPT
#define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || get_mods() == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT))) #define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || get_mods() == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)))

View file

@ -38,10 +38,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#endif #endif
// ATmega pin defs // ATmega pin defs
#define ROW1 (1 << 6) #define COL1 (1 << 6)
#define ROW2 (1 << 5) #define COL2 (1 << 5)
#define ROW3 (1 << 4) #define COL3 (1 << 4)
#define ROW4 (1 << 1) #define COL4 (1 << 1)
/* matrix state(1:on, 0:off) */ /* matrix state(1:on, 0:off) */
static matrix_row_t matrix[MATRIX_ROWS]; static matrix_row_t matrix[MATRIX_ROWS];
@ -51,9 +51,9 @@ static matrix_row_t matrix[MATRIX_ROWS];
*/ */
static matrix_row_t raw_matrix[MATRIX_ROWS]; static matrix_row_t raw_matrix[MATRIX_ROWS];
static const pin_t row_pins[MATRIX_COLS] = MATRIX_ROW_PINS; static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
// Right-hand side only pins, the left side is controlled my MCP // Right-hand side only pins, the left side is controlled my MCP
static const pin_t col_pins[MATRIX_ROWS_PER_SIDE] = MATRIX_COL_PINS; static const pin_t row_pins[MATRIX_ROWS_PER_SIDE] = MATRIX_ROW_PINS;
// Debouncing: store for each key the number of scans until it's eligible to // Debouncing: store for each key the number of scans until it's eligible to
// change. When scanning the matrix, ignore any changes in keys that have // change. When scanning the matrix, ignore any changes in keys that have
@ -167,8 +167,8 @@ void matrix_print(void) {
// Remember this means ROWS // Remember this means ROWS
static void init_cols(void) { static void init_cols(void) {
for (uint8_t row = 0; row < MATRIX_COLS; row++) { for (uint8_t col = 0; col < MATRIX_COLS; col++) {
setPinInputHigh(row_pins[row]); setPinInputHigh(col_pins[col]);
} }
} }
@ -193,7 +193,7 @@ static matrix_row_t read_cols(uint8_t row) {
return data; return data;
} }
} else { } else {
return ~((((PINF & ROW4) >> 1) | ((PINF & (ROW1 | ROW2 | ROW3)) >> 3)) & 0xF); return ~((((PINF & COL4) >> 1) | ((PINF & (COL1 | COL2 | COL3)) >> 3)) & 0xF);
} }
} }
@ -202,9 +202,9 @@ static void unselect_rows(void) {
// no need to unselect on mcp23018, because the select step sets all // no need to unselect on mcp23018, because the select step sets all
// the other row bits high, and it's not changing to a different direction // the other row bits high, and it's not changing to a different direction
for (uint8_t col = 0; col < MATRIX_ROWS_PER_SIDE; col++) { for (uint8_t row = 0; row < MATRIX_ROWS_PER_SIDE; row++) {
setPinInput(col_pins[col]); setPinInput(row_pins[row]);
writePinLow(col_pins[col]); writePinLow(row_pins[row]);
} }
} }
@ -223,7 +223,7 @@ static void select_row(uint8_t row) {
i2c_stop(); i2c_stop();
} }
} else { } else {
setPinOutput(col_pins[row - MATRIX_ROWS_PER_SIDE]); setPinOutput(row_pins[row - MATRIX_ROWS_PER_SIDE]);
writePinLow(col_pins[row - MATRIX_ROWS_PER_SIDE]); writePinLow(row_pins[row - MATRIX_ROWS_PER_SIDE]);
} }
} }