Okey, stimmt. Habe ich übersehen. Aber wenn ich den ersten Sendebefehl rausnehme geht es auch nicht.

Hier ist nochmal die main.c
Code:
#include <avr/io.h>
#include <avr/interrupt.h> 
#include <inttypes.h>
#include <avr/delay.h>
#include "usart.c"


#ifndef F_CPU
#define F_CPU 16000000L    // Systemtakt in Hz, das L am Ende ist wichtig, NICHT UL verwenden! 
#endif




volatile int32_t t,zahl;

int main( void )
{


	
	
	TCCR0 |= (1 << CS00) | (1 << CS01 ) ;		// Timer0 initialisierung
	TCCR0 &= ~(1 <<CS02 );						// Vorteiler ist 64
	TIMSK |= (1<<TOIE0);						// Interrupt aktivieren
	init_USART();
	sendUSART("test2 \r\n"); 
	_delay_ms(1000);
 
	sei();
	
	sendUSART("test3 \r \n"); 
	_delay_ms(1000);
	
    while( 1 ) 
	{               		 // Endlosschleife
	sendUSART("test4 \r \n"); 
	_delay_ms(1000);	
	}
	return 0;					//wird nie erreicht
}


ISR(TIMER0_OVF_vect)
{
	sendUSART("interrupt");
}
und die usart.c
Code:
/*### Senden per USART - RS232-Kommunikation ###*/

/*Zum senden von Zeichen im Hauptprogramm entweder

char irgendwas[] = "meintext";
sendUSART(irgendwas);

oder direkt

sendUSART("meinText");

verwenden.*/ 

void init_USART(void)
{
	UCSRB |= (1<<TXEN);	//UART TX (Transmit - senden) einschalten
	UCSRC |= (1<<URSEL)|(3<<UCSZ0);	//Modus Asynchron 8N1 (8 Datenbits, No Parity, 1 Stopbit)
	UBRRH = 0;				//Highbyte ist 0
	UBRRL = 103;	//Lowbyte ist 103 (dezimal) -> (Frequenz_in_Hz / (Baudrate * 16)) - 1 <- Quarfrequenz = 16*1000*1000 Hz!!!!
}



void sendchar(unsigned char c)
{
	while(!(UCSRA & (1<<UDRE))) //Warten, bis Senden möglich ist
	{
	}
	
	UDR = c; //schreibt das Zeichen aus 'c' auf die Schnittstelle
	return 0;
}



void sendUSART(char *s) //*s funktiniert wie eine Art Array - auch bei einem String werden die Zeichen (char) einzeln ausgelesen - und hier dann auf die Sendeschnittstelle übertragen
{
	while(*s)
	{
	sendchar(*s);
	s++;
	}
}
Die UART routinen habe ich aus dem Wiki, und ohne Interrupt ging es bisher immer. Deswegen dachte ich da gibt es kein Problem. Aber mit dem jetzigen code bekomm ich im HyperTerminal nur "test2" fortlaufend angezeigt.

Gruß
elayne
[/code]