Your interrupt service routine is probably not using the 'swap' instruction to save/ restore W correctly. The microchip ISR examples use swap to get status without changing it's value, and a later swap to restore it. If done incorrectly you'll get the nibble reversal you're seeing. Turn off your timer interrupt to confirm this. R Roberts II, Charles K. wrote: > I have my USART running in asynchronus mode with continuous receive > enabled. I also have Timer1 running from the internal oscillator > interrupting every 1ms. The timer1 interrupt increments a counter that > is used to determine when to send an incrementing or decrementing value > via I2C. > > What happens is on some of the characters sent out the USART the upper > and lower nibbles are swapped, so that instead of sending out 0x0D it > sends 0xD0. What could cause a "nibble" swap like this? It does not > happen on every character. > > Let me know what code you want to see and I will post it if it will help > you come up with any ideas. > > Charles K Roberts II > > > -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist