aboutsummaryrefslogtreecommitdiffstats
path: root/src/split.c
diff options
context:
space:
mode:
authorLouis Burda <quent.burda@gmail.com>2022-12-18 14:53:27 +0100
committerLouis Burda <quent.burda@gmail.com>2022-12-18 14:53:27 +0100
commit4995cfc61e7d2d0c05cf493959456b5bc9a74f19 (patch)
tree2c8b21d211340f7e74ae9ceaeb8dbd685051b157 /src/split.c
parent8e8c972cbec56d8de31847981149cde4a8fc16cd (diff)
downloadsxkbd-4995cfc61e7d2d0c05cf493959456b5bc9a74f19.tar.gz
sxkbd-4995cfc61e7d2d0c05cf493959456b5bc9a74f19.zip
Rename matrix to keymat and refactor key matrix access
Diffstat (limited to 'src/split.c')
-rw-r--r--src/split.c45
1 files changed, 18 insertions, 27 deletions
diff --git a/src/split.c b/src/split.c
index c9daf7c..fac15b1 100644
--- a/src/split.c
+++ b/src/split.c
@@ -1,12 +1,11 @@
-#include "hardware/regs/io_bank0.h"
-#include "hardware/structs/padsbank0.h"
-#include "uart_rx.pio.h"
-#include "uart_tx.pio.h"
-
#include "split.h"
#include "util.h"
-#include "matrix.h"
+#include "keymat.h"
+#include "uart_rx.pio.h"
+#include "uart_tx.pio.h"
+#include "hardware/regs/io_bank0.h"
+#include "hardware/structs/padsbank0.h"
#include "hardware/pio.h"
#include "hardware/irq.h"
#include "hardware/gpio.h"
@@ -35,8 +34,8 @@
#endif
enum {
- CMD_SCAN_MATRIX_REQ = 0xA0,
- CMD_SCAN_MATRIX_RESP,
+ CMD_SCAN_KEYMAT_REQ = 0xA0,
+ CMD_SCAN_KEYMAT_RESP,
CMD_STDIO_PUTS
};
@@ -217,19 +216,17 @@ handle_cmd(uint8_t cmd)
{
uint8_t buf[128];
- DEBUG("Got command %i", cmd);
-
switch (cmd) {
- case CMD_SCAN_MATRIX_REQ:
+ case CMD_SCAN_KEYMAT_REQ:
if (SPLIT_ROLE != SLAVE) {
- WARN("Got SCAN_MATRIX_REQ as master");
+ WARN("Got SCAN_KEYMAT_REQ as master");
break;
}
scan_pending = true;
return;
- case CMD_SCAN_MATRIX_RESP:
+ case CMD_SCAN_KEYMAT_RESP:
if (SPLIT_ROLE != MASTER) {
- WARN("Got SCAN_MATRIX_RESP as slave");
+ WARN("Got SCAN_KEYMAT_RESP as slave");
break;
}
if (uart_recv((uint8_t *) &halfmat, 4) != 4)
@@ -271,17 +268,11 @@ split_task(void)
uint32_t start_ms;
uint8_t cmd;
- //if (!uart_await_tx(20))
- // return;
- //DEBUG("Sending");
- //uart_tx_byte(CMD_SCAN_MATRIX_RESP);
- //return;
-
if (SPLIT_ROLE == MASTER) {
scan_pending = true;
- cmd = CMD_SCAN_MATRIX_REQ;
+ cmd = CMD_SCAN_KEYMAT_REQ;
ASSERT(uart_send(&cmd, 1) == 1);
- scan_matrix(); /* scan our side in parallel */
+ keymat_scan(); /* scan our side in parallel */
start_ms = board_millis();
while (scan_pending && board_millis() < start_ms + 20) {
if (!pio_sm_is_rx_fifo_empty(pio0, uart_rx_sm))
@@ -292,7 +283,7 @@ split_task(void)
WARN("Slave matrix scan timeout");
} else {
DEBUG("Slave matrix scan success");
- matrix_decode_half(SPLIT_OPP(SPLIT_SIDE), halfmat);
+ keymat_decode_half(SPLIT_OPP(SPLIT_SIDE), halfmat);
}
scan_pending = false;
} else {
@@ -303,11 +294,11 @@ split_task(void)
tud_task();
}
if (scan_pending) {
- scan_matrix();
- cmd = CMD_SCAN_MATRIX_RESP;
- DEBUG("Sending SCAN_MATRIX_RESP %i", cmd);
+ keymat_scan();
+ cmd = CMD_SCAN_KEYMAT_RESP;
+ DEBUG("Sending SCAN_KEYMAT_RESP %i", cmd);
ASSERT(uart_send(&cmd, 1) == 1);
- halfmat = matrix_encode_half(SPLIT_SIDE);
+ halfmat = keymat_encode_half(SPLIT_SIDE);
ASSERT(uart_send((uint8_t *) &halfmat, 4) == 4);
scan_pending = false;
}