Ejemplo n.º 1
0
static unsigned char recv_byte(void) {
        int i;
        unsigned char byte=0;

        for (i=7;i>=0;i--)
                byte |= (recv_bit() << i);

        return byte;
}
Ejemplo n.º 2
0
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;
}
Ejemplo n.º 3
0
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;
}
Ejemplo n.º 4
0
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;
}