|
壇子的老鐵能不能幫我這程序咋的了反應(yīng)這么慢????是不是我這有暗。??
功能可以實(shí)現(xiàn)就是反應(yīng)慢 把這里消抖計(jì)數(shù)調(diào)成1if(Matrix_KEY4x4_Cnt>50反應(yīng)又快了
void Matrix_KEY4x4_Scan_Drive()
{
static data uint8 temp1=0;
static data uint8 temp2=0;
static data uint8 Matrix_KEY4x4_Cnt=0;
Matrix_KEY4x4_GPIO=0xf0;//四行輸出1 四列輸出0
temp1=Matrix_KEY4x4_GPIO;
if(temp1!=0xf0)
{
Matrix_KEY4x4_Cnt++;
if(Matrix_KEY4x4_Cnt>50)
{
Matrix_KEY4x4_Cnt=0;
if(temp1!=0xf0)
{
temp1=Matrix_KEY4x4_GPIO&0xf0;//取高四位 并保存確定行號(hào)
Matrix_KEY4x4_GPIO=0x0f; //反轉(zhuǎn) 四行輸出1 四列輸出0
temp2=Matrix_KEY4x4_GPIO&0x0f;//取低四位 并保存確定列號(hào)
switch(temp1+temp2)
{
case(0xee):Matrix_KEY4x4_KeyNum=1;break;
case(0xed):Matrix_KEY4x4_KeyNum=2;break;
case(0xeb):Matrix_KEY4x4_KeyNum=3;break;
case(0xe7):Matrix_KEY4x4_KeyNum=4;break;
case(0xde):Matrix_KEY4x4_KeyNum=5;break;
case(0xdd):Matrix_KEY4x4_KeyNum=6;break;
case(0xdb):Matrix_KEY4x4_KeyNum=7;break;
case(0xd7):Matrix_KEY4x4_KeyNum=8;break;
case(0xbe):Matrix_KEY4x4_KeyNum=9;break;
case(0xbd):Matrix_KEY4x4_KeyNum=10;break;
case(0xbb):Matrix_KEY4x4_KeyNum=11;break;
case(0xb7):Matrix_KEY4x4_KeyNum=12;break;
case(0x7e):Matrix_KEY4x4_KeyNum=13;break;
case(0x7d):Matrix_KEY4x4_KeyNum=14;break;
case(0x7b):Matrix_KEY4x4_KeyNum=15;break;
case(0x77):Matrix_KEY4x4_KeyNum=16;break;
default:break;
}
}
}
}
}
|
|