Use a timeout just a bit longer than the length of the start bit at your baud rate and put it in a loop. If you get a SOLID start bit, then all should be well...if the start bit is flakely, it should timeout. That should let you use ON INTERRUPT alright, should is the key word
Also, can you rewrite the code a bit on the sending unit? I'm thinking maybe some qualifying bytes sent before the actual data is sent might come in handy in a case like this. The qualifying bytes get a short timeout, the data gets a longer timeout, in seperate SERIN statements.
Bookmarks