Function setting register is incorrect, bit `WGM01` is shifted by 1 to right: ``` TCCR0 = (static_cast<uint8_t>(mode) & 0b01 << WGM00) | (static_cast<uint8_t>(mode) & 0b10 << WGM01) | static_cast<uint8_t>(prescaler);```