summaryrefslogtreecommitdiffstats
path: root/keyboards/lets_split/matrix.c
diff options
context:
space:
mode:
authorDamien <Dbroqua@users.noreply.github.com>2016-09-25 14:03:27 +0200
committerGitHub <noreply@github.com>2016-09-25 14:03:27 +0200
commitb75cb53c4a67597dd453fb8bb54af1936b422f6b (patch)
tree590591f00a3782b43253a1321220c7652cd9799b /keyboards/lets_split/matrix.c
parent7a91cce869f7cda8a42bf071ba77ee6096772d20 (diff)
parent67252625165ffa0a08e723a52562a853aa4b496b (diff)
Merge pull request #5 from jackhumbert/master
Merge from jackhumbert
Diffstat (limited to 'keyboards/lets_split/matrix.c')
-rw-r--r--keyboards/lets_split/matrix.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/keyboards/lets_split/matrix.c b/keyboards/lets_split/matrix.c
index 1d768c59b3..1389690042 100644
--- a/keyboards/lets_split/matrix.c
+++ b/keyboards/lets_split/matrix.c
@@ -28,14 +28,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "debug.h"
#include "util.h"
#include "matrix.h"
-#include "i2c.h"
-#include "serial.h"
#include "split_util.h"
#include "pro_micro.h"
#include "config.h"
+#ifdef USE_I2C
+# include "i2c.h"
+#else // USE_SERIAL
+# include "serial.h"
+#endif
+
#ifndef DEBOUNCE
-# define DEBOUNCE 5
+# define DEBOUNCE 5
#endif
#define ERROR_DISCONNECT_COUNT 5
@@ -145,6 +149,8 @@ uint8_t _matrix_scan(void)
return 1;
}
+#ifdef USE_I2C
+
// Get rows from other half over i2c
int i2c_transaction(void) {
int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0;
@@ -176,7 +182,8 @@ i2c_error: // the cable is disconnceted, or something else went wrong
return 0;
}
-#ifndef USE_I2C
+#else // USE_SERIAL
+
int serial_transaction(void) {
int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0;
@@ -199,7 +206,7 @@ uint8_t matrix_scan(void)
#ifdef USE_I2C
if( i2c_transaction() ) {
-#else
+#else // USE_SERIAL
if( serial_transaction() ) {
#endif
// turn on the indicator led when halves are disconnected
@@ -235,7 +242,7 @@ void matrix_slave_scan(void) {
/* i2c_slave_buffer[i] = matrix[offset+i]; */
i2c_slave_buffer[i] = matrix[offset+i];
}
-#else
+#else // USE_SERIAL
for (int i = 0; i < ROWS_PER_HAND; ++i) {
serial_slave_buffer[i] = matrix[offset+i];
}
@@ -290,7 +297,7 @@ static void init_cols(void)
static matrix_row_t read_cols(void)
{
matrix_row_t result = 0;
- for(int x = 0; x < MATRIX_COLS; x++) {
+ for(int x = 0; x < MATRIX_COLS; x++) {
result |= (_SFR_IO8(col_pins[x] >> 4) & _BV(col_pins[x] & 0xF)) ? 0 : (1 << x);
}
return result;
@@ -298,7 +305,7 @@ static matrix_row_t read_cols(void)
static void unselect_rows(void)
{
- for(int x = 0; x < ROWS_PER_HAND; x++) {
+ for(int x = 0; x < ROWS_PER_HAND; x++) {
_SFR_IO8((row_pins[x] >> 4) + 1) &= ~_BV(row_pins[x] & 0xF);
_SFR_IO8((row_pins[x] >> 4) + 2) |= _BV(row_pins[x] & 0xF);
}