also
8Bit
timer0_counter_D1
TCNT0
timer0_counter_D1 habe ich als volatile definiert, glaube es heißt das der Wert sofort geschrieben werden soll.
TCNT0 ist der Direkte TimerWert.

16Bit
counter_neu
counter_alt
time_delta

das mit dem negative Time_delta habe ich nun auch ausprobiert.
habe eine If-Bedingung eingefügt, die die differenz janachdem ob der alte oder neue Wert größer ist, bildet.
Code:
	if(counter_neu > counter_alt){
		time_delta = counter_neu - counter_alt;}	// ermittel die Zeitdifferenz
	else{
		time_delta = counter_alt - counter_neu;}	// ermittel die Zeitdifferenz