for (j=0;j<4;j++)
{
for (k=0;k<8;k++)
{
while (IRIN)
{DelayIr(1);}
while (!IRIN)
{DelayIr(1);}
while (IRIN)
{
DelayIr(1);
N++;
if (N>=30)
{
return;}
}
IRCOM[j]=IRCOM[j] >> 1;
if (N>=8) {IRCOM[j] = IRCOM[j] | 0x80;}
N=0;
}//end for k
}//end for j
k = ~IRCOM[3];
if (IRCOM[2] != k)
{
return; }
switch(IRCOM[2])
{
case 0x46: ctrl_comm = COMM_UP;break;
case 0x15: ctrl_comm = COMM_DOWN;break;
case 0x44: ctrl_comm = COMM_LEFT;break;
case 0x43: ctrl_comm = COMM_RIGHT;break;
case 0x40: ctrl_comm = COMM_STOP;break;
default : return;
}
ir_rec_flag = 1;