Why does my Atmega328 clock seem to be off by a factor of 2?
Arduino code expects Arduino clocks. If it has 16 MHz clock, it will run half as fast as it does not know that you are in fact using 8MHz clock. Apparently the boards.txt file contains board build configurations including the board clock that gets passed on as F_CPU define for building all libraries, so adding a new custom board entry should be enough for making it work with user clock rates.