X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=drivers%2Favr%2Fi2c_master.c;h=97f69004363f62e8c67fa53fb735c192065a5197;hb=bad56a4f2b91fc8591f6d33a1710ea0050abcfbf;hp=bcf92153c5c89399e4a05e51f67f1bcdaa56e90f;hpb=998ddbb122c9d3e2a77bd4e88c881b225ca0d569;p=qmk_firmware.git diff --git a/drivers/avr/i2c_master.c b/drivers/avr/i2c_master.c index bcf92153c..97f690043 100755 --- a/drivers/avr/i2c_master.c +++ b/drivers/avr/i2c_master.c @@ -6,6 +6,7 @@ #include #include "i2c_master.h" +#include "timer.h" #define F_SCL 400000UL // SCL frequency #define Prescaler 1 @@ -21,11 +22,21 @@ void i2c_init(void) uint8_t i2c_start(uint8_t address) { // reset TWI control register - //TWCR = 0; + TWCR = 0; // transmit START condition TWCR = (1< I2C_TIMEOUT) { + return 2; // should make these codes standard + } + } + #else + // wait for end of transmission + while( !(TWCR & (1< I2C_TIMEOUT) { + return 2; // should make these codes standard + } + } + #else + // wait for end of transmission + while( !(TWCR & (1< I2C_TIMEOUT) { + return 2; // should make these codes standard + } + } + #else // wait for end of transmission - while( !(TWCR & (1< I2C_TIMEOUT) { + return 2; // should make these codes standard + } + } + #else + // wait for end of transmission + while( !(TWCR & (1< I2C_TIMEOUT) { + return 2; // should make these codes standard + } + } + #else + // wait for end of transmission + while( !(TWCR & (1< I2C_TIMEOUT) { + return 2; // should make these codes standard + } + } + #else + // wait for end of transmission + while(TWCR & (1<