Hallo uffi;
danke für die Erklärung,ich hab genau geschrieben ,was du mir gesagt hast ,leider das Ergibniss ist immer das gleiche hier ist mein Code nochmal :

Code:
#include <avr/io.h>
#include "i2cmaster.h"
#define  SRF 0xE0 
#define F_CPU 8000000UL 
#include <util/delay.h> 
#define BAUD 9600
#include <avr/iom8515.h>
#include <avr/sfr_defs.h> 
#define SDA     	0		// SDA Port E, Pin  0 
#define SCL		    1		// SCL Port E, Pin  1
#define SDA_PORT        PORTE           // SDA Port E
#define SCL_PORT        PORTE           // SCL Port E     



// USART_INIT--
 void initusart(void)           					// Hauptfunktion
 {
	unsigned char x;							//Hilfsvariable
//  #idef UBRRL									//USART-Schnittstelle
	UBRRL = (F_CPU / (16UL*BAUD)) -1;		//Baudrate mit TAKT und Baud
	UCSRB |= (1<<TXEN) | (1<<RXEN);		//Sender und Empfänger ein
	UCSRC |= (1<< URSEL) | (1<< UCSZ1) | (1<<UCSZ0); 		//ansync 8bit

	x = UDR;
}

void sendeusart(int x)
{
    while (!(UCSRA & (1<<UDRE)));   // warten bis Senden moeglich
	{
	}

	UDR = x;
 
}
int distance;
int main(void)

{


int distance =0;
i2c_init();
initusart();
sendeusart(distance);
unsigned char Lbyte,Hbyte;


DDRE =  0xff;
PORTE = 0xff;

while(1)
{ 

i2c_init();

i2c_start(SRF);
i2c_write(0x00);
i2c_write(0x51);

i2c_stop();

_delay_ms(70);

i2c_start(SRF);

i2c_write(0x02);

i2c_stop();

i2c_start(0xE1);

Hbyte=i2c_readAck();

Lbyte=i2c_readNak();

distance=(Hbyte*256)+Lbyte;

sendeusart(distance);

i2c_stop();

}

}
Danke und ich hoffe das du mir hilfen kannst
Gruss Alexandra