|
@@ -38,10 +38,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
#endif
|
|
|
|
|
|
// ATmega pin defs
|
|
|
-#define ROW1 (1 << 6)
|
|
|
-#define ROW2 (1 << 5)
|
|
|
-#define ROW3 (1 << 4)
|
|
|
-#define ROW4 (1 << 1)
|
|
|
+#define COL1 (1 << 6)
|
|
|
+#define COL2 (1 << 5)
|
|
|
+#define COL3 (1 << 4)
|
|
|
+#define COL4 (1 << 1)
|
|
|
|
|
|
/* matrix state(1:on, 0:off) */
|
|
|
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 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
|
|
|
-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
|
|
|
// change. When scanning the matrix, ignore any changes in keys that have
|
|
@@ -167,8 +167,8 @@ void matrix_print(void) {
|
|
|
|
|
|
// Remember this means ROWS
|
|
|
static void init_cols(void) {
|
|
|
- for (uint8_t row = 0; row < MATRIX_COLS; row++) {
|
|
|
- setPinInputHigh(row_pins[row]);
|
|
|
+ for (uint8_t col = 0; col < MATRIX_COLS; col++) {
|
|
|
+ setPinInputHigh(col_pins[col]);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -193,7 +193,7 @@ static matrix_row_t read_cols(uint8_t row) {
|
|
|
return data;
|
|
|
}
|
|
|
} 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
|
|
|
// 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++) {
|
|
|
- setPinInput(col_pins[col]);
|
|
|
- writePinLow(col_pins[col]);
|
|
|
+ for (uint8_t row = 0; row < MATRIX_ROWS_PER_SIDE; row++) {
|
|
|
+ setPinInput(row_pins[row]);
|
|
|
+ writePinLow(row_pins[row]);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -223,7 +223,7 @@ static void select_row(uint8_t row) {
|
|
|
i2c_stop();
|
|
|
}
|
|
|
} else {
|
|
|
- setPinOutput(col_pins[row - MATRIX_ROWS_PER_SIDE]);
|
|
|
- writePinLow(col_pins[row - MATRIX_ROWS_PER_SIDE]);
|
|
|
+ setPinOutput(row_pins[row - MATRIX_ROWS_PER_SIDE]);
|
|
|
+ writePinLow(row_pins[row - MATRIX_ROWS_PER_SIDE]);
|
|
|
}
|
|
|
}
|