标题:
菜鸟求教,一个简单的按键问题,谢谢。
[打印本页]
作者:
singasin
时间:
2016-8-11 07:16
标题:
菜鸟求教,一个简单的按键问题,谢谢。
代码如下,其中set_flag是全局变量,为什么我按K1使能键,就第一下有用,后面再按K1键都没用。。。。。
unsigned char Key_Scan()
{
if (enable == 0) //检测按键K1是否按下
{
Delay10ms(1); //消除抖动
if (enable == 0&&set_flag==0)
{
unsigned int i=0;
set_flag=1;
while ((i<100)&&(enable==0)) //检测按键是否松开
{
Delay10ms(10);
i++;
}
return set_flag;
}
}
else if (enable == 0&&set_flag==1) //检测按键K1是否按下
{
Delay10ms(1); //消除抖动
if (enable == 0&&set_flag==1)
{
unsigned int i=0;
set_flag=2;
while ((i<100)&&(enable==0)) //检测按键是否松开
{
Delay10ms(10);
i++;
}
return set_flag;
}
}
else if (enable == 0&&set_flag==2) //检测按键K1是否按下
{
Delay10ms(1); //消除抖动
if (enable == 0&&set_flag==2)
{
unsigned int i=0;
set_flag=0;
while ((i<100)&&(enable==0)) //检测按键是否松开
{
Delay10ms(10);
i++;
}
return set_flag;
}
}
return set_flag;
}
void Flag_Scan()
{
if (set_flag==1)
{
GUI_Line_Spark(4, 64, 131, 65, RED);
}
else if (set_flag == 2)
{
GUI_Line_Spark(4, 128, 131, 129, RED);
}
else if (set_flag == 0)
{
GUI_Line(4, 64, 131, 65, RED);
GUI_Line(4, 96, 131, 97, RED);
GUI_Line(4, 128, 131, 129, RED);
}
}
main()
{
Key_Scan();
Flag_Scan();
}
作者:
singasin
时间:
2016-8-11 08:02
难道是因为,我在定义全局变量的时候,给他赋初值0,这个原因吗》?
作者:
hantp
时间:
2016-8-12 05:51
这条语句是啥意思
unsigned char Key_Scan()
作者:
singasin
时间:
2016-8-13 16:18
hantp 发表于 2016-8-12 05:51
这条语句是啥意思
unsigned char Key_Scan()
就是看按键有没有按下,
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1