本帖最后由 zico1998 于 2009-9-2 08:34 编辑
遇到的问题,始终只显示长按,不知为何
//均为全局变量,其他程序里定时KeyT每10ms扫描一次P06口的T按键,k_temp送数码管显示,长按2秒显示2,短按显示1
// bit KeyT;
uchar KeyT_Scan()
{
if(!KeyT) //T按键按下
{
if(fsong==0) //松开标志,表示之前送开过
{
k_cnt++; //按下后计数
K_cnt_l=0;
if(k_cnt>=200) //2S到?
{
k_cnt=0;
fsong=1;
fchang=1; //2S到则置长按标志
}
}
}
else //松开
{
k_cnt_l++; //松开后计数
if(k_cnt_l>=50)
{
k_cnt_l=0;
fsong=0;
k_cnt=0;
}
}
if(fsong)k_temp=2; //长按显示2
if(k_cnt) k_temp=1; //短按显示1
return k_temp;
} |