Есть вот такой кусок кода (опрос клавиатуры):
unsigned char LookKey()
{
unsigned char i,j;
for (i=0;i<4;i++)
{
if (i == 0) KEYPORT = (unsigned char)~ROW1;
if (i == 1) KEYPORT = (unsigned char)~ROW2;
if (i == 2) KEYPORT = (unsigned char)~ROW3;
if (i == 3) KEYPORT = (unsigned char)~ROW4;
for (j=0;j<255;j++); // Delay
if (i == 3){iDebug = (KEYPIN & (COL1+COL2+COL3+COL4)); }
if ( (KEYPIN & (COL1+COL2+COL3+COL4)) != (COL1+COL2+COL3+COL4))
{
i = i * 4;
if ((KEYPIN & COL1) != COL1) i = i + 1;
if ((KEYPIN & COL2) != COL2) i = i + 2;
if ((KEYPIN & COL3) != COL3) i = i + 3;
if ((KEYPIN & COL4) != COL4) i = i + 4;
return Table[i-1];
}
}
return 0;
}
Если закоментировать строчку if (i == 3){iDebug = (KEYPIN & (COL1+COL2+COL3+COL4)); } то не работает, с ней работает. Переменная iDebug нигде больше не используется. Не работает - это не опрашивается клавиатура при нажатии клавиш на линии ROW4. Остальные клавиши работают при любом раскладе. В чем проблема, есть идеи?
Социальные закладки