Highest PWM frequency output for the Uno/Nano

  TIMSK0 = 0;  // no interrupts
...
  delay(1000);

delay() uses timer 0. You have both turned interrupts off, and changed the timer 0 frequency. Thus the delay will never exit and it will get stuck in the delay() call. Use another timer or do the delay a different way.

Also, putting the analogRead into a float will just slow things down, as analogRead returns an int.