When using ON INTERRUPT the interrupts don't get handled until the currently executing PBP statement has finished.
At 9600 baud it only takes 1.04ms per byte. With the USARTS 2 byte buffer, the longest that any statement can take is 2.08ms. Anything taking longer will cause the buffer to overflow. Then with [DEFINE HSER_CLROERR 1] the program never even knows it lost data.
With PAUSE 50 in the MainLoop, you could easily loose 15-20 bytes at a time.
If you were using ASM interrupts, that wouldn't be a problem.
HTH,




Bookmarks