I would say the calculations are incorrect…
…or not.
I wouldn’t say an 8bit capture of a sine with about 30 samples per cycle like you show is a very good representation of a sine wave.
It’s a very poor one actually, and it would be strange to not get a lot of harmonics.
If you increase the time resolution (samples per cycle) you’ll start getting better results.
…but please remember - this is a 256 samples FFT.
It’s usefulness is limited.
Had some problems reverting back to the 1024 points FFT I had first implemented, and will probably not be trying to get it running any time soon.
If someone want’s to have a go at it… (all the FFT related code in the source is delimited with “// FFT” comments, and is actually very few lines of code)