I did a little search in the web and found that the modules for medical applications use the so called BCI protocol with 4800 8-ODD-1 serial setup.
Data frames are 5 bytes long and on the first byte the 7th bit is 1 while on the restbit 7 is set to 0.
So, may be you get one byte at a time and check the bit 7 only for it to be 1. Then get the rest and store in a byte array of 5 elements.
If there is not a sync byte or a significant pause between frame transmissions, PIC cannot discriminate the start byte. That is why you get confussing results.
One untested example might be:
Code:
array var byte[5]
index var byte
index=0
get_new_data:
SerIn2 PORTB.7,16572,[B0]
if B0.7=1 then
array[index]=B0
index=index+1
endif
if index=5 then process_data
goto get_new_data
Ioannis
Bookmarks