From c0095710a7c7e9bd94aa9f4dd814dc28d718c731 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Thu, 24 May 2018 09:18:36 -0400 Subject: [PATCH] a failed attempt at hot-plugging --- keyboards/ergodox_ez/ergodox_ez.c | 13 ++++++++----- keyboards/ergodox_ez/matrix.c | 6 ++++-- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/keyboards/ergodox_ez/ergodox_ez.c b/keyboards/ergodox_ez/ergodox_ez.c index 36eb58a3c..b393d73d7 100644 --- a/keyboards/ergodox_ez/ergodox_ez.c +++ b/keyboards/ergodox_ez/ergodox_ez.c @@ -112,11 +112,14 @@ uint8_t init_mcp23018(void) { // uint8_t sreg_prev; // sreg_prev=SREG; // cli(); - if (i2c_initialized == 0) { - i2c_init(); // on pins D(1,0) - i2c_initialized = true; - _delay_ms(1000); - } + + // if (i2c_initialized == 0) { + // i2c_init(); // on pins D(1,0) + // i2c_initialized = true; + // _delay_ms(1000); + // } + i2c_init(); // on pins D(1,0) + _delay_ms(1000); // set pin direction // - unused : input : 1 diff --git a/keyboards/ergodox_ez/matrix.c b/keyboards/ergodox_ez/matrix.c index 2aad99781..6660af46a 100644 --- a/keyboards/ergodox_ez/matrix.c +++ b/keyboards/ergodox_ez/matrix.c @@ -68,7 +68,8 @@ static void init_cols(void); static void unselect_rows(void); static void select_row(uint8_t row); -static uint8_t mcp23018_reset_loop; +// static uint8_t mcp23018_reset_loop; +static uint16_t mcp23018_reset_loop; #ifdef DEBUG_MATRIX_SCAN_RATE uint32_t matrix_timer; @@ -175,7 +176,8 @@ void debounce_report(matrix_row_t change, uint8_t row) { uint8_t matrix_scan(void) { if (mcp23018_status) { // if there was an error - if (++mcp23018_reset_loop == 0) { + // if (++mcp23018_reset_loop == 0) { + if (++mcp23018_reset_loop >= 1300) { // since mcp23018_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans // this will be approx bit more frequent than once per second print("trying to reset mcp23018\n"); -- 2.39.2