No need to guess whether the math is right. Feed the FFT with a data array containing a calculated sine wave and check whether the power spectrum is what you expect.
Note: this is not the correct way to time your samples, as it does not correctly handle counter overflow (after about 70 minutes of run time):
while(micros() < (microseconds + sampling_period_us)){}
This does:
while(micros() - microseconds < sampling_period_us){}