Sfoglia il codice sorgente

revert some attempts, update i2c

Jack Humbert 7 anni fa
parent
commit
b8564f5dd0

+ 1 - 1
drivers/avr/i2c_master.c

@@ -21,7 +21,7 @@ void i2c_init(void)
 uint8_t i2c_start(uint8_t address)
 uint8_t i2c_start(uint8_t address)
 {
 {
 	// reset TWI control register
 	// reset TWI control register
-	//TWCR = 0;
+	TWCR = 0;
 	// transmit START condition
 	// transmit START condition
 	TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);
 	TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);
 	// wait for end of transmission
 	// wait for end of transmission

+ 2 - 3
keyboards/ergodox_ez/config.h

@@ -81,10 +81,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 /* fix space cadet rollover issue */
 /* fix space cadet rollover issue */
 #define DISABLE_SPACE_CADET_ROLLOVER
 #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
 /* "debounce" is measured in keyboard scans. Some users reported
  * needing values as high as 15, which was at the time around 50ms.
  * needing values as high as 15, which was at the time around 50ms.

+ 7 - 7
keyboards/ergodox_ez/ergodox_ez.c

@@ -113,13 +113,13 @@ uint8_t init_mcp23018(void) {
     // sreg_prev=SREG;
     // sreg_prev=SREG;
     // cli();
     // 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
     // set pin direction
     // - unused  : input  : 1
     // - unused  : input  : 1

+ 4 - 4
keyboards/ergodox_ez/matrix.c

@@ -68,8 +68,8 @@ static void init_cols(void);
 static void unselect_rows(void);
 static void unselect_rows(void);
 static void select_row(uint8_t row);
 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
 #ifdef DEBUG_MATRIX_SCAN_RATE
 uint32_t matrix_timer;
 uint32_t matrix_timer;
@@ -176,8 +176,8 @@ void debounce_report(matrix_row_t change, uint8_t row) {
 uint8_t matrix_scan(void)
 uint8_t matrix_scan(void)
 {
 {
     if (mcp23018_status) { // if there was an error
     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
             // 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
             // this will be approx bit more frequent than once per second
             print("trying to reset mcp23018\n");
             print("trying to reset mcp23018\n");