Most of my bit-banged serial implementations have used a baud rate fixed at compile time. I'm working on a project which requires transmitting at a baud rate that will be determined at runtime, so I modified some old code I wrote. On an 8MHz AVR, it supports baud rates as low as 150bps, and as high as 57,600 with timing accuracy better than 1%. 115.2k has better than 3% timing accuracy right now, though I have a plan that would improve that to within 1%.
https://github.com/nerdralph/ner...