The purpose of Manchester encoding is to reduce receive oscillator drift by making sure that no consecutive ones or zeroes are ever transmitted.
The table driven method of Manchester encoding and decoding uses two tables with 256 entries. One table is a direct mapping of an 8-bit byte into a 16-bit Manchester encoding of the byte. The second table is a mapping of a Manchester encoded 8-bit byte to 4 decoded bits.
Files | |
| file | me.c |
| Implementation of the table-driven Manchester encoding and decoding. | |
Functions | |
| unsigned short | me_encode (unsigned char c) |
| Manchester encode an 8-bit byte. | |
| unsigned char | me_decode16 (unsigned short m) |
| Decode a Manchester encoded 16-bit word. | |
| unsigned char | me_decode8 (unsigned char m) |
| Decode a Manchester encoded 8-bit byte. | |
| unsigned char | me_valid (unsigned char m) |
| Check if an encoded byte is valid. | |
|
|
Decode a Manchester encoded 16-bit word. This function decodes a Manchester encoded 16-bit word into a 8-bit byte. The function does not check for parity errors in the encoded byte.
|
|
|
Decode a Manchester encoded 8-bit byte. This function decodes a Manchester encoded 8-bit byte into 4 decoded bits.. The function does not check for parity errors in the encoded byte.
|
|
|
Manchester encode an 8-bit byte. This function Manchester encodes an 8-bit byte into a 16-bit word. The function me_decode() does the inverse operation.
|
1.3.6