You can use FullDuplexSerial by computing the parity yourself and adding it into the 8-bit value you're sending. For transmitting a 7-bit character CH with even parity, do:
FDS.tx((CH & %1111111) | (((CH<<1) ^ (CH<<2) ^ (CH<<3) ^ (CH<<4) ^ (CH<<5) ^ (CH<<6) ^ (CH<<7) ^ %10000000) & %10000000))
On receive, you'd do a similar calculation, but compare the result with what was actually received.
Wait a mintute. I thought 8,E,1 meant 8 Data bits plus 1 parity bit plus 1 stop bit. So putting the parity bit into the top bit of the 8 bits of data does not do what you want.
"For example, a frame that uses seven data bits, even parity, and one stop bit is abbreviated 7E1, and one that uses eight data bits, no parity, and one stop bit is abbreviated 8N1."
Comments
Search for "FD_Serial_Conf.spin" in the forum, this object should do what you want.
Andy
FDS.tx((CH & %1111111) | (((CH<<1) ^ (CH<<2) ^ (CH<<3) ^ (CH<<4) ^ (CH<<5) ^ (CH<<6) ^ (CH<<7) ^ %10000000) & %10000000))
On receive, you'd do a similar calculation, but compare the result with what was actually received.
I'm going to try it out.
Stef
Life is unpredictable. Eat dessert first.
http://www.freeopenbook.com/pc-hardware-nutshell-2/pchardnut2-CHP-22-SECT-1.html