Quote Originally Posted by Macgman2000 View Post
I tried commenting out the lines you suggested. I am still getting garbage on the LCD.
OK, I didn't look past the first major problem I saw. Leave those lines commented.
Now for step 2.

I think what is happening is that when the UART interrupts and the 2 manchester encoded bytes are being decoded another interrupt happens and hoses any sync the UART had...
Yes, that's a big problem too.

At 9600 baud, you only get just a little over 1ms between each byte, (unless there are additional delays added from the transmit side).

The clear LCD command will take over 2ms by itself.
You could change that to $FE, $80 for Home Cursor, which will reduce the time to 50µs.

And each of the multiply's in the array operations will take 50µs. 2 per loop, 8 loops, for a total of 800µs.

Using a shift left(<<1) is the same thing as *2, and only takes a couple µs.
example: IF encoded.0[i<<1]=0 Then

With those two things changed, it might be able to do it all in time.
<br>