int KEY_Scan(void)
{
static int key_up=1;//按键按松开标志
if(key_up&&(gpioGet(KEY3)==0||gpioGet(KEY1)==0||gpioGet(KEY2)==0))
{
delayNS(10);//去抖动
key_up=0;
if(gpioGet(KEY1)==0)
{
return 1;
}
else if(gpioGet(KEY2)==0)
{
return 2;
}
else if(gpioGet(KEY3)==0)
{
return 3;
}
}else if(KEY1==1&&KEY2==1&&KEY3==1)key_up=1;
return 0;// 无按键按下
}
int main (void)
{ int t;
//gpioSet(LED1) == OPERATE_FAIL;
//gpioSet(LED2) == OPERATE_FAIL;
//gpioSet(LED3) == OPERATE_FAIL;
while(1)
{
t=KEY_Scan();//得到键值
if(t)
{
switch(t)
{
case 1:
while (1) {
gpioClr(LED3) == OPERATE_FAIL ;
gpioClr(LED2) == OPERATE_FAIL;
gpioSet(LED4) == OPERATE_FAIL;
gpioSet(LED1) == OPERATE_FAIL;
delayNS(50);
gpioSet(LED3) == OPERATE_FAIL;
gpioSet(LED2) == OPERATE_FAIL;
gpioClr(LED1) == OPERATE_FAIL;
gpioClr(LED4) == OPERATE_FAIL;
delayNS(50);
};
break;
case 2:
while (1) {
gpioSet(LED4) == OPERATE_FAIL;
gpioClr(LED1) == OPERATE_FAIL;
delayNS(50);
gpioSet(LED1) == OPERATE_FAIL;
gpioClr(LED2) == OPERATE_FAIL;
delayNS(50);
gpioSet(LED2) == OPERATE_FAIL;
gpioClr(LED3) == OPERATE_FAIL ;
delayNS(50);
gpioSet(LED3) == OPERATE_FAIL;
gpioClr(LED4) == OPERATE_FAIL;
delayNS(50);
};
break;
case 3:
while (1) {
gpioSet(LED1) == OPERATE_FAIL;
gpioClr(LED4) == OPERATE_FAIL;
delayNS(50);
gpioSet(LED4) == OPERATE_FAIL;
gpioClr(LED3) == OPERATE_FAIL ;
delayNS(50);
gpioSet(LED3) == OPERATE_FAIL;
gpioClr(LED2) == OPERATE_FAIL;
delayNS(50);
gpioSet(LED2) == OPERATE_FAIL;
gpioClr(LED1) == OPERATE_FAIL;
delayNS(50);
};
break;
};
} else delayNS(10);
}
}
|