Hallo Zusammen

Ich habe da ein Problem:
Ich möchte gerne alle 30 sekunden eine Funktion aufrufen.
Das blöde ist, sobald die 30 sekunden erreicht sind bekommt mein ATmeg128
ein Reset.
Wenn ich die Funktionen jedoch normal im main() aufrufe funktionieren sie einwandfrei.

Ich hoffe Ihr könnt mir helfen, hier mal der Code:
Code:
void init_Timer1(void){

	TCCR1B|=(1<<WGM12)|(1<<CS12)|(1<<CS10);		//set timer to CTC mode and prescalor to 1024
	OCR1BH=0x0F;									//set compare register B to 3907 = ~1second   
	OCR1BL=0x43;
	TIMSK|=(1<<OCIE1B);							//enable compare interrupt
	TCNT1H=0x00;									//set the timer starting position to 0
	TCNT1L=0x00;
	
	sei();										//enable Global interrupt
}


//***Compare match Interrupt Timer 1***
ISR(TIMER1_COMPB_vect){
	
	countSeconds++;
	lock=0;
	
	if(countSeconds==30){
		send_String_to_Display("ZZ",DispLine_3);
		
		wdt_reset();						//reset Watchdog
			
		getAddress(6,deviceAddress);
		tempTankT12=getTemperature(deviceAddress);
		wdt_reset();						//reset Watchdog
	countSeconds=0;
	}

TCNT1H=0x00;								//set the timer starting position to 0
	TCNT1L=0x00;
}
countSeconds ist ein int volatile

die zwei "Z" erscheinen dabei noch auf dem Display kurz danach wird der AVR wahrscheinlich vom Wachtdog zurück gesetzt, weil er wahrscheinlich in "getTemperature" stecken bleibt.

Vielen Dank für Eure Hilfe

Beni