I've modified the ISR without testing it, hence the missing bracket; before I had a simple if-else counter there.
The volatile doesn't seem to work; it just turns the LED on once and then doesn't do the toggling, hence why I think it doesn't call the interrupt correctly repeatedly but only once.
Maybe the settings it wrong and it has too long/too short period? Is it possible that after it's called once some flags are reset that disable further calls?