Code:
do
{
    n = TCNT0;
}
while(TIFR & (1<<OCF1A)); //!!!Und das funktioniert nicht ich weiß nicht wie ich das Register /speziell das FLAG- Bit abfrage???
Die Schleife soll doch sicher laufen, bis das Flag gesetzt ist, und nicht so lange es gestzt ist, oder? Und warum ist das Lesen des Zählers in der Schleife?
Ich würde es eher so machen:
Code:
while(!(TIFR & (1<<OCF1A)));  // Warten, bis Zeitfenster abgelaufen
n = TCNT0;                    // dann Ergebnis auslesen