Vielen Dank für deine Antwort...also hab jetzt mal reingeschrieben...kanns leider heut net mehr ausprobieren...erst morgen früh wieder...muss ich an dem Code jetzt noch etwas ändern !? Oder meinst du das funktioniert so mit dem Senden !? Krieg ich dann pro Tastendruck den Zählstand angezeigt!? Und was macht eigentlich uart_puts..im Tutorial versteh ich das nicht....
Vielen Dank nochmal...

Jimmy



Code:
//define all external dependencies
#include <avr/io.h>
#include <avr/interrupt.h>


//declare all used functions
void Sensor_init(void);
void LED_SW_init(void);

//define variables

volatile unsigned int z;
volatile unsigned int sekunde;
volatile unsigned int T1;
volatile unsigned int T2;
volatile unsigned int TD;


void TIMER2_interrupt_init(void)
{
TCCR2 = (1<<WGM21)|(0<<WGM20)|(1<<CS22)| (1<<CS21) |(0<<CS20); 		//CTC mode und Prescaler auf 256
TCNT2=0;
OCR2=249; 								//alle 0.008 s Interrupt
TIMSK = (1<<OCIE2);
}

ISR(TIMER2_COMP_vect) /Sekunde hochzählen
{
z++;
if(z==125)
{
sekunde++;
z=0;
}

}

int main(void)
{
Sensor_init();
LED_SW_init();

TIMER2_interrupt_init();

while(1)
{
if(!(PINA & (1<<PINA0)))         					//Mit Pin 0 soll T1 gespeichert werden
{
T1 = sekunde;
}
if(!(PINA & (1<<PINA1))) 						//Mit Pin 1 soll T2 gespeichert werden und die Differenz berechnet werden
{
unsigned char uc_string[6]; 						//Eine String Variable mit 6Stellen wird eingerichtet
unsigned char i=0; 							//Eine Schleifenvariable wird eingerichtet
T2 = sekunde;
TD = T2-T1;
itoa(TD,uc_string);

									//nun musst Du nur noch uc_string über UART senden und <CR><LF> anhängen- fertig
for(i=0;i<strlen(uc_string);i++);
{
uart_putc(uc_string[i]);
}
uart_putc('\r');      							//<CR> und <LF> anfügen
uart_putc('\n');
} 
}


void Sensor_init(){

DDRA=0x00; 								// For using the floating sensor the Port A has to be used as a digital input
PORTA=0xff; 								// activate internal pull-up resistors for PORTA
}

void LED_SW_init(){

DDRB=0xFF;								// PORTB is output for LEDs
PORTB=0xFF; 								// all LEDs off
}


//-------------------------------------------------------------------------------------------------//

/* ATmega16 */
int uart_putc(unsigned char c)
{
while (!(UCSRA & (1<<UDRE))) 						/* warten bis Senden moeglich */
{
}

UDR = c; 								/* sende Zeichen */
return 0;
}


									/* puts ist unabhaengig vom Controllertyp */
void uart_puts (char *s)
{
while (*s)
{ 									/* so lange *s != '\0' also ungleich dem "String-Endezeichen" */
uart_putc(*s);
s++;
}
}

//-------------------------------------------------------------------------------------------------//