Aber trotzdem wird die Stoppuhr nie größer als null, obwohl im Datenblatt steht, dass der Impuls bis zu 25ms lang sein kann,...
Du must dir auch noch mal deine Programmlogik genau ansehen:

1. An der Stelle, wo du mit "if (PINC & SCL)" auf die steigende Flanke des Impulses testest, müßtest du eigentlich auf diese Flanke WARTEN. Schreib das mal so um.

2. Wenn die steigende Flanke dann gekommen ist, müßtest du die Stopwatch starten.

3. Dann must du wieder WARTEN, bis die fallende Flanke des Impulses (SCL wird low: "(!(PINC & SCL))" ) kommt.

4. Danach kannst du dann den Stopwatch Wert auswerten.

5. Erst danach geht es dann nach einer PAUSE an den Anfang deiner while(true) Schleife mit einem neuen Impuls von 10µs.

Viel Erfolg!

Gruß Dirk