int zdpin=2;
int k1=8;
int k2=9;
int k3=10;
int k4=11;
volatile int flag=0;
void setup()
{
pinMode(k1,INPUT);
pinMode(k2,INPUT);
pinMode(k3,INPUT);
pinMode(k4,INPUT);
pinMode(zdpin,INPUT);
attachInterrupt(0,key,RISING);
Serial.begin(9600);
}
void loop()
{
if (flag==1)
{Serial.println("1");
flag=0;
}
if(flag==2)
{ Serial.println("2");
flag=0;
}
if(flag==3)
{Serial.println("3");
flag=0;
}
if(flag==4)
{Serial.println("4");
flag=0;
}
}
void key()
{
if((digitalRead(k1)&digitalRead(zdpin))==0)
flag=1;
if((digitalRead(k2)&digitalRead(zdpin))==0)
flag=2;
if((digitalRead(k3)&digitalRead(zdpin))==0)
flag=3;
if((digitalRead(k4)&digitalRead(zdpin))==0)
flag=4;
}
以上代码,想实现一个4*1的按键,按下一个按键在终端上显示相应的内容,但是4总是不能正常显示,而是在按下k1键或k2键随着输出:例如按下k1键后输出1 4 是怎么回事,各位大神帮帮忙,谢谢。 |