u8 U4_RxB(void)
{ u8 i,da=0;
u16 t;
while(S4Rx)i++; //µÈ´ýµÍ
{ if(i>80)return 0xFF;}
for(t=0;t<78;)//ÑÓʱ8.68us/79
{ t++;}//ÆðʼλL
for(t=0;t<35;)//ÑÓʱ4.08us(0.5bit/4.32us/37)
{ t++;}
for(i=0;i<7;i++)//0.23us
{ if(S4Rx) da|=0x01;
da<<=1;
for(t=0;t<76;)//8.48/77ÑÓʱ(8.68us/79)
{ t++;}
}
if(S4Rx) da|=0x01;
for(t=0;t<35;)//ÑÓʱ3.04,(4.08us/35)
{ t++;}
while(!(S4Rx)); //µÈ´ý¸ß,ֹͣλH
return da;
}
|