Jau, das Enable sollte etwas gehalten werden.
Die Warteschleife ist nicht so optimal, möglicherweise kloppt GCC die in die Tonne, weil da nix passiert.
Bau mal ein
asm volatile (";");
anstatt dem {} ein.