Ich bekomm das Ganz nich compiled, von daher nur send_byte ein wenig abgeändert in nem kurzen Test für Windows. Änderungen in Byte & (1<<i) und bei den Randbedingungen für i im for:

#include <stdio.h>
#include <stdlib.h>

void send_Byte(char Byte){
char parity=1, i=0;

for(i=5; i>=0; i--){
if((Byte & (1<<i))){
parity = !parity;
}
printf ("i=%02i, parity = %02x, bit2send = %02x\n", i, parity, (Byte & (1<<i)));
}
}

int main(int argc, char *argv[]) {

send_Byte(0x0f);
system("PAUSE");
return 0;
}

Zum ansehn am Besten kurz mit Dev-C++ (www.bloodshed.net).