static void pulse_clock() { i2c_delay_us(100); SET_CLOCK(); i2c_delay_us(100); CLEAR_CLOCK(); }
static void i2c_start() { SET_DATA(); SET_CLOCK(); MAKE_DATA_OUTPUT(); i2c_delay_us(100); CLEAR_DATA(); i2c_delay_us(100); CLEAR_CLOCK(); }
static inline void pulse_clock(){ wait(); wait(); wait(); wait(); SET_CLOCK(); wait(); wait(); wait(); wait(); CLEAR_CLOCK(); }
static unsigned char read_bit() { unsigned char i; MAKE_DATA_INPUT(); i2c_delay_us(100); SET_CLOCK(); i2c_delay_us(100); i = (unsigned char) GET_DATA(); CLEAR_CLOCK(); return i; }
char read_bit(){ char i; MAKE_DATA_INPUT(); wait(); wait(); wait(); wait(); SET_CLOCK(); wait(); wait(); wait(); wait(); i = GET_DATA(); CLEAR_CLOCK(); return i; }
void i2c_start(){ SET_DATA(); SET_CLOCK(); MAKE_DATA_OUTPUT(); wait(); wait(); wait(); wait(); CLEAR_DATA(); wait(); wait(); wait(); wait(); CLEAR_CLOCK(); printf(" i2c_start\n"); }