求助:关于红外解码的问题

2019-03-24 18:25发布

unsigned char  IRCOM[7];

while (!IRIN)            //等IR变为高电平,跳过9ms的前导低电平信号。
  {IRdelay(1);}

for (j=0;j<4;j++)         //收集四组数据
{
  for (k=0;k<8;k++)        //每组数据有8位
  {
   while (IRIN)            //等 IR 变为低电平,跳过4.5ms的前导高电平信号。
     {IRdelay(1);}
    while (!IRIN)          //等 IR 变为高电平
     {IRdelay(1);}
     while (IRIN)           //计算IR高电平时长
      {
    IRdelay(1);
    N++;           
    if (N>=30)
         { EX0=1;
         return;}                  //0.14ms计数过长自动离开。
      }                        //高电平计数完毕               
     IRCOM[j]=IRCOM[j] >> 1;                  //数据最高位补“0”
     if (N>=8) {IRCOM[j] = IRCOM[j] | 0x80;}  //数据最高位补“1”
     N=0;
我想问下 第一次j为0  如果读到的数据为1 就跟0x80 按位或  就变成0x80  如果第二位数据也为0 再跟0x80按位或 结果不是一样吗?

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。