Danke Thorsten,

hab selber auch schon was gemacht ( aus dem Blackout wurde ein whitein)

Code:
#include <avr/io.h>
#include <stdlib.h>


#define ms 10
#define SYSCLK 12000000


int
uart_putchar(char c)
{
  if (c == '\n')
    uart_putchar('\r');
  loop_until_bit_is_set(UCSRA, UDRE);
  UDR = c;
  return 0;
}


void
uart_puts(const char *s)
{
  char c;

  while ((c = *s++) != '\0')
    uart_putchar(c);
}



int init_usart(void)
{
	UBRRL=78;        // bei 12MHz
	outp(_BV(TXEN),UCSRB);

}


int usartprintnl(void) /* print new line */
{
	while (! (UCSRA & _BV(UDRE)) )
		;
	UDR = 10; /* LF */
	while (! (UCSRA & _BV(UDRE)) )
		;
	UDR = 13; /* CR */	

	return 2;

}

int usartprintcr(void)
{
   while (! (UCSRA & _BV(UDRE)) )
		;
	UDR = 13; /* CR */	

	return 2;
}


int usartprint(int buf) 
{
	int i;

	//for (i=0;i<8;i++) {
		/* if the UDRE bit is set this means that the UDR buffer is
		 * empty. New data can be transmitted */
		while ( !(UCSRA & _BV(UDRE)) ) 
			;

		UDR = buf;
	//}			
	
	
}		



void wait(unsigned int multiplier50us) { 
	unsigned int i; 
	
	for(i=0;i<multiplier50us;i++) { 
		asm volatile( 
			"ldi r16, 125"   "\n\t" 
			"L_%=:dec r16"   "\n\t" //1 
			"tst r16"      "\n\t" //1 
			"brne L_%="   "\n\t" //2 
			:::"r16"); 
	} 
}




int init_ausgang(void)
{
 
	/*outp(0xFF, DDRC); // Alle Ports von C als Output setzen
	outp(0xFF, PORTC); // Alle LEDs aus
	*/
	
	DDRC=(1<<DDC0);
	PORTC=(1<<DDC0);
}

int ausgabe_on(void)
{

	PORTC=(0<<DDC0);

}


int ausgabe_off(void)
{

	PORTC=(1<<DDC0);

}

int init_eingang(void)
{

	DDRA  = 0x00;

}



int main(void) {
  unsigned int keys;
  unsigned char i;
  unsigned int x;
  unsigned char ledout[10];

  
  
  	init_ausgang();
	init_eingang();
	init_usart();
	i=0;
	x=0;
	
	
	//itoa(x, ledout, 10);


    //uart_puts("Ist doch ein stück weiter\n");

	
	
     for (;;) {                  
        keys = PINA;
		
		if ( !(PINA & (1<<0)) & i==0 ) {		
            ausgabe_on();
			i=1;
			wait(500*ms);
			x++;
			usartprintnl();
			usartprintcr();
			uart_puts(itoa(x, ledout, 10));
		}
		
		if ( !(PINA & (1<<0)) & i==1 ) {		
            ausgabe_off();
			i=0;
			wait(500*ms);
			x++;
			usartprintnl();
			usartprintcr();
			uart_puts(itoa(x, ledout, 10));
		}
		
		
		
		
		
	
	}
	
	
	return 0;
}
( Codetag eingefügt, Kjion )