So mittlerweile hat sich das mit dem Slave erübrigt.

Jetzt stehe ich vor einem neuen Problem. Nachdem ich das Start-Signal und danach die Adresse gesendet habe, hängt er an der Überprüfung der Übertragung nach dem Daten-Byte, sprich an dem

while (!(TWCR & (1<<TWINT)));

Weiß jemand woran das liegen kann?

Hier noch der Slave-Code
Code:
/*Zeitanzeigetafel - hierrein soll nur der Code der den per TWI übergebenen TWI-Minuten und Sekundenwert angezeigt werden */

#include <avr/io.h>

#include <avr/interrupt.h>
#include <avr/signal.h>

volatile uint8_t sekunden;


//Interruptroutine des TWI
SIGNAL (SIG_2WIRE_SERIAL){
		PORTD = (1<<PD7);
	   //hier wird das TWSR darauf geprüft, ob 0x80 darin steht, dieser Wert bedeutet, dass Daten
	   //empfangen wurden, 0x60 würde zB bedeuten, dass er addressiert wurde und dies bestätigt hat
	   if((TWSR & 0b11111000) == 0x80){
		  //hier Code einfügen, der bearbeitet werden soll, die empfangenen Daten kann man aus
		  //TWDR auslesen
		  sekunden = TWDR;
		  
	   }
	   
	   //wenn der Interrupt ausgelöst wird, wird der TWI des µC blockiert, damit man die Daten
	   //verarbeiten kann
	   //um ihn wieder zu aktivieren, muss man eben folgenden Befehl ausführen
	   TWCR |= 0b10000000;
	}

int main(void){
	
	DDRD = 0xFF;
	
	//diese 6 Zeilen Code sind für das Initialisieren des TWI-Moduls zuständig, also kommt das Stück
	//Code am besten irgendwo in die Mainmethode vor die Endlosschleife
	 
	//hier wird die Addresse des µC festgelegt(in den oberen 7 Bit, das LSB(niederwertigstes Bit) steht dafür, ob der µC auf einen general call //reagiert
	TWAR = 0x02;
	//TWI Control Register, hier wird der TWI aktiviert, der Interrupt aktiviert und solche Sachen
	TWCR = 0b01000101;
	//TWI Bitrate Register, für die Frequenz des TWI wichtig
	//TWBR = 0xC;
	//TWI Status Register, die 2 niederwertigsten sind für den Prescaler zur Taktberechnung, aus den
	//anderen kann man auslesen, was genau passiert, wenn ein Interrupt ausgelöst wird, es gibt nämlich
	//für den TWI nur einen
	TWSR = 0b11111100;
	//hier werden Interrupts global aktiviert
	sei();
	//hier wird das TWI-Modul aktiv geschalten, ab hier man den µC per TWI ansteuern, den Befehl aber
	//auf jeden Fall hinter das "sei();", da es sonst nicht geht
	TWCR |= 0b10000000;
 
	PORTD = (1<<PD6);
	for (;;){
	
	PORTD |= sekunden;
	}
}