On Thu, 22 Jun 2000, Byron A Jeff wrote: > One last thing: > > The bit generation need not be exact because each character is self clocked > independantly of the others. While it seems from my previous example that a > start bit start on a bit boundary, it can in fact start at any time. > Typically serial ports will operate correct up to 4 percent error or so. > For 9600 BPS that means that any clock from 9216 BPS to 9984 BPS (100 to > 108 uS bit cell time) the character will be interpreted at the other end > correctly. This is why it's possible to generate 9600 BPS characters at > 4 Mhz or 10 Mhz when 9600 isn't an exact multiple. But a phase accumulator or careful isochronous coding makes this a moot point. Also, a good tutorial on a software UART can be found on Eric's page: http://www.brouhaha.com/~eric/pic/bitbanging.html Scott