HIER GEHTS MIT "ICP1 funktioniert nur einmal" WEITER

Code:
ISR(SIG_INPUT_CAPTURE1) 
{
        PORTB |= (1<<PB0);
	if(TCCR1B & (1<<ICES1)) {
		TCCR1B &= ~(1<<ICES1);
		ramptimeusec = (ICR1>>1);
		ramptimemsec = mtime;
	}
	else {
		TCCR1B |= (1<<ICES1);
		unsigned int ramptime = ((unsigned int)(mtime - ramptimemsec)) * 1000;
		ramptime = (signed int)ramptime + (signed int)(ICR1>>1) - (signed int)ramptimeusec;
               .....
        }
	PORTB &= ~(1<<PB0);
}
in dieser ISR versuche ich eine impulslänge zu messen ...

die flanken werden u.a. durch start und stop ausgelöst/erzeugt

kann es sein, dass durch das LÖSCHEN des edgeselect

TCCR1B &= ~(1<<ICES1);

der interrupt gestört wird ? wenn ich die zeile aus dem true-zweig nämlich rauseditiere gehts, dann bekomme ich den strobe mit!

ich hab jetzt die startbedingung geändert und den edgeselect auf falling initialisiert, und siehe da ich bekommen GARKEINEN impuls ... hab ich meinen komparator geschrottet ? hab ich beim schreiben der ISR was nicht beachtet ??? warum bekomm cih auf fallende flanken plötzlich keinen interrupt mehr ?

das signal hab ich auf dem oszi überprüft, einwandfrei!