void Pulse(unsigned char Bit){
unsigned char i;
if(Bit==0){ //send 24 blips for a zero
for(i=0;i<24;i++){ //12 cycles
ir=1; //1
Delay13p3W(7); //1*3+13=16
ir=0; //1
Delay13p3W(24); //3*3+13=22
}
}else if(Bit==1){ //48 for a 1
for(i=0;i<48;i++){
ir=1;
Delay13p3W(7);
ir=0;
Delay13p3W(24);
}
}else{ //must be a start pulse
for(i=0;i<96;i++){ //so do 96 blips
ir=1;
Delay13p3W(7);
ir=0;
Delay13p3W(24);
}
}
Delay13p3W(250); //Do 600uS pause. 196*3+13 = 601
Delay13p3W(250); //do it again as we are at 8MHz
Delay13p3W(250);
Delay13p3W(236);
}