simplified functions for byte sending

This commit is contained in:
tharexde 2020-06-17 23:06:57 +02:00
parent 89f15432b0
commit 5cb732d620

View file

@ -341,37 +341,21 @@ static void em4x50_send_byte(uint8_t byte) {
// send byte (without parity) // send byte (without parity)
int mask = 0x80; for (int i = 0; i < 8; i++)
em4x50_send_bit((byte >> (7-i)) & 1);
for (int i = 0; i < 8; i++) {
if ((byte & mask) == 0)
em4x50_send_bit(0);
else
em4x50_send_bit(1);
mask >>= 1;
}
} }
static void em4x50_send_byte_with_parity(uint8_t byte) { static void em4x50_send_byte_with_parity(uint8_t byte) {
// send byte followed by its (equal) parity bit // send byte followed by its (equal) parity bit
int parity = 0; int parity = 0, bit = 0;
int mask = 0x80;
for (int i = 0; i < 8; i++) { for (int i = 0; i < 8; i++) {
bit = (byte >> (7-i)) & 1;
if ((byte & mask) == 0) { em4x50_send_bit(bit);
em4x50_send_bit(0); parity ^= bit;
parity ^= 0;
} else {
em4x50_send_bit(1);
parity ^= 1;
}
mask >>= 1;
} }
em4x50_send_bit(parity); em4x50_send_bit(parity);