From b8564f5dd08f49ee0fc6d28957a376132bd7038d Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 12 Jun 2018 14:27:22 -0400 Subject: [PATCH] revert some attempts, update i2c --- drivers/avr/i2c_master.c | 2 +- keyboards/ergodox_ez/config.h | 5 ++--- keyboards/ergodox_ez/ergodox_ez.c | 14 +++++++------- keyboards/ergodox_ez/matrix.c | 8 ++++---- 4 files changed, 14 insertions(+), 15 deletions(-) diff --git a/drivers/avr/i2c_master.c b/drivers/avr/i2c_master.c index bcf92153c..cd3c2e1c8 100755 --- a/drivers/avr/i2c_master.c +++ b/drivers/avr/i2c_master.c @@ -21,7 +21,7 @@ void i2c_init(void) uint8_t i2c_start(uint8_t address) { // reset TWI control register - //TWCR = 0; + TWCR = 0; // transmit START condition TWCR = (1<. /* fix space cadet rollover issue */ #define DISABLE_SPACE_CADET_ROLLOVER -// #define RGB_MIDI -#define RGBW_BB_TWI +// #define RGBW_BB_TWI -#define RGBW 1 +// #define RGBW 1 /* "debounce" is measured in keyboard scans. Some users reported * needing values as high as 15, which was at the time around 50ms. diff --git a/keyboards/ergodox_ez/ergodox_ez.c b/keyboards/ergodox_ez/ergodox_ez.c index b393d73d7..3a2d1273f 100644 --- a/keyboards/ergodox_ez/ergodox_ez.c +++ b/keyboards/ergodox_ez/ergodox_ez.c @@ -113,13 +113,13 @@ uint8_t init_mcp23018(void) { // sreg_prev=SREG; // cli(); - // 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); + 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 6660af46a..8b117166f 100644 --- a/keyboards/ergodox_ez/matrix.c +++ b/keyboards/ergodox_ez/matrix.c @@ -68,8 +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 uint16_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; @@ -176,8 +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 >= 1300) { + 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");