在接收二进制数据信号的过程中,怎样确定接收的逻辑1与逻辑0的时间,在0.56+0.565到0.56+1.69ms这个时间范围之内呢,见如下程序段;
逻辑0的高低电平时间为1.125ms,而逻辑1的高低电平时间为2.25ms,此时irtime>=9,意味着时间为9*0.2777=2.499ms,很显然大于2.25ms,所以无法接受信号,但是如果改成6或7,即时间小于2.25ms,又能接收到信号。
红色箭头处,所加的测试程序
另外在测试 if(irtime<63&&irtime>=48)程序段,即接收头码的时间时发现,接收端接收的头码时间在13ms以上,也就是说高电平9ms与低电平4.5ms的时间都接收到了,在网上查询时,找到了接收端NEC的时序图如下:
所以接收端应该是在接收到中断信号后,定时器计时时间为9+4.5.即在4.5ms的下降沿停止计时。