revert some attempts, update i2c
This commit is contained in:
		
							parent
							
								
									998ddbb122
								
							
						
					
					
						commit
						b8564f5dd0
					
				@ -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<<TWINT) | (1<<TWSTA) | (1<<TWEN);
 | 
			
		||||
	// wait for end of transmission
 | 
			
		||||
 | 
			
		||||
@ -81,10 +81,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
/* 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.
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
 | 
			
		||||
@ -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");
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user