Mike Harrison says:
While we're on the subject of neat little routines etc...
This code sends a byte at 115.2Kbaud
With a 4.096MHZ xtal, error is about 1.25% (near enough),
with 4.000MHz, 4.55% (marginal).
Data is non-inverted (i.e can be fed straight to PC)txbyte movwf temp movlw d'10' ; 1 start + 8 data + 1 stop movwf cnt bcf status,c ;start bit movf portb,w txloop andlw 0ff-(1<<seroutbit) skpc iorlw 1<<seroutbit movwf portb sec rrf temp ; carry shifted in as stop bit decfsz cnt goto txloop return
Incidentally It's also possible to do 115K2 bit-bashed reception at 4.096MHz, by generating an INT interrupt off the startbit edge, and grabbbing all the data bits within the int code. Context save/restore overheads mean there's only a couple of cycles available to the foreground task if data is streaming in continuously!
|file: /Techref/scenix/lib/io/osi2/serial/rs232at115kbps.htm, 1KB, , updated: 2000/3/20 10:02, local time: 2020/2/18 20:00,
|©2020 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE. Questions?|
<A HREF="http://www.massmind.org/techref/scenix/lib/io/osi2/serial/rs232at115kbps.htm"> Mike Harrisons 115.2kBaud with a 4.096Mhz crystal</A>
|Did you find what you needed?|
Welcome to massmind.org!
Welcome to www.massmind.org!