32mHz ARDUINO PROJECTS.. ATMega328P etc...

mrburnette:
You can lower the clock core frequency before flash/EEPROM critical write functions.
From change-the-frequency-of-my-atmega

Apart from that default loaded value you can change the clock prescale at will during runtime, all you need is to include the following header

#include <avr/power.h>
and call the following function with the appropriate value you want to use

clock_prescale_set(clock_div_1),    // divide by 1, for example with 20MHz clock result      20MHz
  clock_prescale_set(clock_div_2),    // divide by 2, for example with 20MHz clock result      10MHz
  clock_prescale_set(clock_div_4),    // divide by 4, for example with 20MHz clock result       5MHz
  clock_prescale_set(clock_div_8),    // divide by 8, for example with 20MHz clock result     2.5MHz
  clock_prescale_set(clock_div_16),   // divide by 16, for example with 20MHz clock result   1.25MHz
  clock_prescale_set(clock_div_32),   // divide by 32, for example with 20MHz clock result  0.625MHz
  clock_prescale_set(clock_div_64),   // divide by 64, for example with 20MHz clock result  0.312MHz
  clock_prescale_set(lock_div_128),   // divide by 128 for example with 20MHz clock result  0.156MHz
  clock_prescale_set(clock_div_256),  // divide by 256, for example with 20MHz clock result 0.078MHz
power.h manual

Not necessary. The AVR internal R/C oscillator times flash and eeprom writes. The cpu clock speed is irrelevant.