Ein mit 8MHz getakteter AVR braucht ca. 0,125µs pro Takt/Befehl. In 7µs wären das 56 Takte/Befehle. Das könnte man also auch einfach mit einer kleinen Zählschleife erledigen:

int lowcount=0, highcount=0;

while(Signalpin == low);
while(Signalpin == high);
while(Signalpin == low) lowcount++;
while(Signalpin == high) highcount++;