Laco While travando no timer

Meus amigos, estava brincando com o Arduino e resolvi fazer um timer sendo verificado por uma condicao WHILE verificando o estado da variavel FLAG1, porem ele nao olha a mudanca do estado da variavel, achei estranho, resumi o programa apenas no timer e no while, se tirar o argumento do while, vai notar que trava e se retira o led da placa do arduino volta a piscar. Coloquei o if apenas para ver se passa ou nao da função. Alguem tem uma luz?
cpp code
cpp code
unsigned char flag1 = 1;
void setup(void) {
pinMode(13, OUTPUT);
TCCR1A = 0; //configura timer para operação normal pinos OC1A e OC1B desconectados
TCCR1B = 0; //limpa registrador
TCCR1B |= (1 << CS10) | (1 << CS12); // configura prescaler para 1024: CS12 = 1 e CS10 = 1
TCNT1 = 0xFA24; //
TIMSK1 |= (1 << TOIE1); // habilita a interrupção do TIMER1
}
ISR(TIMER1_OVF_vect) { //interrupção do TIMER1
flag1 = 1;
digitalWrite(13, LOW);
TCNT1 = 0xFA24; // Renicia TIMER
}
void loop(){
while(1){
//while(flag1 == 0); //o while nao confere a condicação
if (flag1 == 1){
delay(500);
flag1 = 0;
}
digitalWrite(13, HIGH);
delay(50);
}
}