Ups sorry, die ISR muss wohl beim "copy pasten" unter den Tisch gefallen sein. Hier nochmal dem komplette Code Problem wie beschrieben

Code:
#include <avr/interrupt.h>   
#include <avr/signal.h>   
#include <compat/twi.h>
#include <avr/io.h>   
#include <compat/twi.h>

#define F_CPU 16000000

volatile uint8_t rxbuffer[8];
#define rx_PWM_L 2
#define rx_PWM_R 3
#define rx_DIR 1
volatile uint8_t txbuffer[8]

void init_twi_slave (uint8_t adr)
{
   TWAR= adr; //Adresse setzen

   TWCR|= (1<<TWEA) | (1<<TWEN)|(1<<TWIE);
   TWCR &= ~(1<<TWSTA)|(1<<TWSTO);
   buffer_adr=0xFF;
   sei();
}

int main(void) {
   
/*******************************************************************************************************************/
/*   Initialisierung                                                                                                 */
/*******************************************************************************************************************/
   
   //*** Alle Ports an PortD als Ausgang definieren
   DDRB = 0xFF;
        PORTB = 0x00;
   
        DDRD = 0xFF;
        PORTD = 0x00;
   
   DDRC = 0xFF;
   PORTC= 0x00;
   PORTC &= ~(1<<DDC1);
   
   init_twi_slave(0x60);               // Init I2C interface      

   Delay(1000);
   
        // Diode einmal anblicken ob sie funktioniert
   PORTC |= (1<<DDC1);   
   Delay(400);
   PORTC &= ~(1<<DDC1);   
   Delay(400);
   rxbuffer[0]=0;
   
   for(;;){
      if (rxbuffer[0]!= 0){
         PORTC |= (1<<DDC1);   
         Delay(2000);
      }
   } 

ISR (TWI_vect) { //ISR, die bei einem Ereignis auf dem Bus ausgelöst wird. Im Register TWSR befindet sich dann
            //ein Statuscode, anhand dessen die Situation festgestellt werden kann.

uint8_t data=0;

switch (TWSR) //TWI-Statusregister prüfen und nötige Aktion bestimmen
{
case TW_SR_SLA_ACK: // 0x60 Slave Receiver, wurde adressiert   
      TWCR = (1<<TWEN)|                                 // TWI Interface enabled
             (1<<TWIE)|(1<<TWINT)|                      // Enable TWI Interupt and clear the flag to send byte
             (1<<TWEA)|(0<<TWSTA)|(0<<TWSTO)|           // Expect ACK on this transmission
             (0<<TWWC);                                 // 
      buffer_adr=0xFF; //Bufferposition ist undefiniert
   break;
   
case TW_SR_DATA_ACK: // 0x80 Slave Receiver,Daten empfangen
   data=TWDR;
   if (buffer_adr == 0xFF) //erster Zugriff, Bufferposition setzen
     {
      buffer_adr= data; //Bufferposition wie adressiert setzen
      TWCR = (1<<TWEN)|                                 // TWI Interface enabled
             (1<<TWIE)|(1<<TWINT)|                      // Enable TWI Interupt and clear the flag to send byte
             (1<<TWEA)|(0<<TWSTA)|(0<<TWSTO)|           // Send ACK after next reception
             (0<<TWWC);      
     }
   else //weiterer Zugriff, Daten empfangen
      {
      rxbuffer[buffer_adr]=data; //Daten in Buffer schreiben
      buffer_adr++; //autoincrement Buffer-Adresse
      if(buffer_adr<7)
      {
      //nächstes Byte lesen, ACK danach      
      TWCR = (1<<TWEN)|                                 // TWI Interface enabled
             (1<<TWIE)|(1<<TWINT)|                      // Enable TWI Interupt and clear the flag to send byte
             (1<<TWEA)|(0<<TWSTA)|(0<<TWSTO)|           // Send ACK after next reception
             (0<<TWWC);
      }
      else
      {
      //letztes Byte lesen, dann NACK
            TWCR = (1<<TWEN)|                                 // TWI Interface enabled
             (1<<TWIE)|(1<<TWINT)|                      // Enable TWI Interupt and clear the flag to send byte
             (0<<TWEA)|(0<<TWSTA)|(0<<TWSTO)|         
             (0<<TWWC);
      }
     }
   break;


case TW_ST_SLA_ACK:
case TW_ST_DATA_ACK: //0xB0 weitere Daten gefordert
   TWDR = txbuffer[buffer_adr];
   buffer_adr++;
   TWCR = (1<<TWEN)|                               
         (1<<TWIE)|(1<<TWINT)|                     
         (1<<TWEA)|(0<<TWSTA)|(0<<TWSTO)|         
         (0<<TWWC); 
break;

case TW_ST_DATA_NACK: //0xC0 Keine Daten mehr gefordert
case TW_SR_DATA_NACK: //0x88
case TW_ST_LAST_DATA: //0xC8  Last data byte in TWDR has been transmitted (TWEA = “0”); ACK has been received
case TW_SR_STOP: // 0xA0 STOP empfangen
default:
    TWCR = (1<<TWEN)|                               
             (1<<TWIE)|(1<<TWINT)|                     
             (1<<TWEA)|(0<<TWSTA)|(0<<TWSTO)|         
             (0<<TWWC); 
   //buffer_adr=0xFF; //Bufferposition ist undefiniert
break;

   
} //end.switch
} //end.twi_ISR