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.