Lasse mal folgendes aus dem Datenblatt in deinen Code einfließen, und probiere es dann nochmal:
Außerdem würde ich ICR1 so früh wie möglich auslesen (insbesondere noch vor der Flankenänderung), also:After a change of the edge, the input capture flag (ICF1) must be cleared by software (writing a logical one to the I/O bit location).gleich als allererste Zeile in der ISR, und dann mit capture weiterarbeiten.Code:unsigned int capture = ICR1;
Lesezeichen