本帖最后由 毅如靳往 于 2011-10-5 21:54 编辑
菜农大叔的助学板上有两个用户按键,通过函数DrvGPIO_GetBit (E_GPB, 15);可以获得按键的当前状态,
加上按键消抖则可以进行相应的按键响应程序。
然而如果想要做松手检测怎么做呢 ?
请看我下面所写的代码
KEY1_ST = DrvGPIO_GetBit (E_GPB, 15); //获取KEY1的值,KEY1_ST是代表KEY1的状态变量
//按键KEY1的响应动作
if (KEY1_ST == 0)
{
delay_loop(); //消抖
if (KEY1_ST == 0)
{
if(++LED1_ST>5) LED1_ST=0;
didi(1); //形参传递为几 则蜂鸣器响几声
while(!KEY1_ST) //按键松手检测
{
display(); //显示函数,应用状态机的显示,按键每次按下则LED灯1,2,3,4分别点亮
}
}
}
这个while()的用法是我在PIC单片机程序中使用过的,然而在keil中编程的时候写这个语句会卡死在这个while循环里.
想了一段时间,不知道怎么做松手检测了,请教大家.敬请各位不吝赐教. |