Es gibt keine IF-Schleifen!

start=0;
Und dann wunderst du dich das die Bedingung (2==start) nicht erfüllt ist?!
Bevor der Interrupt die Chance bekommt start zu verändern, ist das Programm schon zuende.