Huhu,

Es war noch ein wenig mehr.
Beim STK500 sind irgendwie die Ein- und Ausgänge negiert.
Also hats zuerst mit deinem Tipp allein nicht geklappt.

hier jetzt der lauffähige Code.

Code:
#include <avr/io.h> 
#include "SeriellBiblio.h"
#include <progmem.h>
#include <avr/signal.h>
#include <avr/interrupt.h>
#include <avr/string.h>
//Arbeitstakt angeben
#define SYSCLK 8000000UL

//usart ansprechen

volatile unsigned char *data[12];
//volatile unsigned char *pdata=data[0];
volatile int count=0;
volatile int i;
volatile unsigned char b;

void timer (void){
	TIMSK = _BV(TOIE0);					//overflow flag setzen--> ab jetzt kan overflow interrupt ausgelöst werden
	TCNT0 = 0;                			//Rücksetzen des Timers
	TCCR0 = _BV(CS02);    				//Prescaler 256
	sei ();								//interrupts ein
}

void TasterInt(void){
	MCUCR = _BV(ISC01);					//interrupt bei fallender Flanke
	GIMSK = _BV(INT0);					//interrupt an
}

int main(void) {
	i=0;
	b='0';
	USART_Init ();
	timer ();
	TasterInt();
	//sei();
	//unsigned char data = 0;
	DDRB = 0xff;
	PORTB = 0xff;//PortB = Ausgabe
	DDRD = 0x00;//PortD = Eingabe
	PORTD = 0xff;//alle Pullups ein
	for (;;) {
	    //data = USART_receive ();
		//darf erst vergleichen wenn nicth mehr gesendet wird... hmmm
		if(b=='1'){
			if (strstr((char*)data, "1\n")){
			 PORTB = 0x00;
			 //data[]="";
			}
			else if (strstr((char*)data, "0\n")){
			 PORTB = 0xff;
			 //data="";
			}
			else if (strstr((char*)data, "Steffen")){
			 USART_transmit_string("Hallo Steffen");//(char*)data
			 //data="";
			}
			else if (strstr((char*)data, "Jana")){
			 USART_transmit_string("Hallo Jana");//(char*)data
			 //data="";
			}
			PORTB|=(1<<PB7);
			b='0';
		}	
	}
	return 0;
}
//intterrupt wenn byte empfangen
SIGNAL (SIG_UART_RECV){
	PORTB&=~(1<<PB7);
	unsigned char temp=UDR;
	*data[i++]=temp;//hänge neues byte an
	if (temp=='\n'){
	 b='1'; //prüft ob Receive complete
	 i=0;
	}
}

//lässt led blinken
SIGNAL (SIG_OVERFLOW0) {
	count++;
	if (count==4){
	 if(PORTB & (1<<PB0)){
	  PORTB&=~(1<<PB0);
	  count=0;
	 } 
	 else{
	  PORTB|=(1<<PB0);
	  count=0;
	 }
	}
}

//interruptmethode für externen interrupt 0
SIGNAL(SIG_INTERRUPT0){
	/*if(PORTB==0x00)
		PORTB=0xff;
	else
		PORTB=0x00;*/
	//todo: 6 Tasten abfgragen, welche den int ausgelöst hat. und entsprechende LED Anschalten
	if(!(PIND&(1<<PD3))) PORTB=0xF7;	//PortB Pin 4
	else if(!(PIND&(1<<PD4))) PORTB=0xEF;	//PortB Pin 5
	else if(!(PIND&(1<<PD5))) PORTB=0xDF;	//PortB Pin 6
	else if(!(PIND&(1<<PD6))) PORTB=0xBF;	//PortB Pin 7
	else if(!(PIND&(1<<PD7))) PORTB=0x7F;	//PortB Pin 8
}
Danke dir. Hab grad entsprechend deinem Hinweis gelesen :
Bei Mikrocontroller.net