OK thanks for all your replies.
Cattledog, i tried a few different times and prescalers but it was clear the program wasn't working so its just been left as it untill i can work out why it sticks in the interrupt.
J-M-L, i believe i have done this... volatile boolean failSafe = false;
Sterretje, thanks for your idea, if i fail on the interrupt then i will change to what you have suggested, i started the program how you explained but decided that an interrupt would allow better resolution on the measured pulse?
Anyway the problem still exists!