So, die Ansteuerung funktioniert jetzt

Code:
oid i2c_init(void)
{
	TWBR = (1 << 5) | (1 << 1) | (1 << 3); //TWBR = 11
}

void i2c_send_stop(void)
{
	TWCR = (1 << TWINT) | (1 << TWEN) | (1 << TWSTO);
	while(!(TWCR & (1 << TWSTO)));
}

int i2c_read_ack(void)
{
	TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWEA);
	while(!(TWCR & (1<<TWINT)));

		if(!(TWSR & 0x50))
			return -1;
		
    return TWDR;

}

int i2c_read_nack(void)
{
	TWCR = (1<<TWINT) | (1<<TWEN);
	while(!(TWCR & (1<<TWINT)));
	
	if(!(TWSR & 0x58))
		return -1;
	
    return TWDR;

}

int i2c_send_start(uint8_t adress)
{    
    TWCR = (1 << TWINT) | (1 << TWSTA) | (1 << TWEN); //Sende start Condition
    while(!(TWCR & (1 << TWINT))); //Warte bis ende

    if(!(TWSR & 0x08))
        return -1;
		
    TWDR = adress;

    TWCR = (1 << TWINT) | (1 << TWEN);
    while(!(TWCR & (1 << TWINT)));
	
    if(!(TWSR & 0x40))
        return(-2);

    return 0;
}

void readfromLM75(uint8_t *temp, uint8_t *nachkomma)
{
	i2c_send_start(LM75_ADRESS | 1); //Sende Adresse + Read
	*temp = i2c_read_ack();
	*nachkomma = i2c_read_nack();
	i2c_send_stop();
	
	if(bit_is_set(*nachkomma, 7))
		*nachkomma = 5;
	else
		*nachkomma = 0;
}