static unsigned char recv_byte(void) { int i; unsigned char byte=0; for (i=7;i>=0;i--) byte |= (recv_bit() << i); return byte; }
bool I2C<CL_t, DA_t>::send_byte(uint8_t data) { for (uint8_t i = 0; i < 8; ++i) { send_bit(data & 0x80); data += data; } DA::set(); return recv_bit() == false; }
static int recv_ack(void) { unsigned int ack; ack = (unsigned int)recv_bit(); scl_lo; if (ack) { do_idle(); printk(KERN_ERR "Error reading the Atmel 24C32/24C64 EEPROM \n"); return -1; } return ack; }
uint8_t I2C<CL_t, DA_t>::recv_byte(bool nack) { uint8_t data; DA::set(); for (uint8_t i = 0; i < 8; ++i) { data += data; if (recv_bit()) data |= 1; } send_bit(nack); return data; }