revert some attempts, update i2c

master
Jack Humbert 2018-06-12 14:27:22 -04:00
parent 998ddbb122
commit b8564f5dd0
4 changed files with 14 additions and 15 deletions

View File

@ -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

View File

@ -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.

View File

@ -113,13 +113,13 @@ uint8_t init_mcp23018(void) {
// sreg_prev=SREG; // sreg_prev=SREG;
// cli(); // cli();
// if (i2c_initialized == 0) { if (i2c_initialized == 0) {
// i2c_init(); // on pins D(1,0) i2c_init(); // on pins D(1,0)
// i2c_initialized = true; i2c_initialized = true;
// _delay_ms(1000); _delay_ms(1000);
// } }
i2c_init(); // on pins D(1,0) // i2c_init(); // on pins D(1,0)
_delay_ms(1000); // _delay_ms(1000);
// set pin direction // set pin direction
// - unused : input : 1 // - unused : input : 1

View File

@ -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 uint8_t mcp23018_reset_loop;
static uint16_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 == 0) {
if (++mcp23018_reset_loop >= 1300) { // 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");