Bit sting in my post #15 has 10 bits (included start and stop)
I send 0xF0 NOT 0x0F because of LSB first (after 0 start bit).
But yes I see something wrong now...
EDIT:
(So now I am sending a chunk of 10MB at once with WriteFile() and everything else comented out in the loop.
All initialized to same byte.)
For char 0x55 I get 4.8 KHz. (baud=freq*2) (Not 0xAA but 0x55 coz LSB first.)
For char 0xF0 I get 0.9 KHz. (baud=freq*10) (one full period frequency wise is 10 baud marks)