SOS!关于按键按下执行中断的问题
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 是怎么回事,各位大神帮帮忙,谢谢。 试一下用swith代替if或者后面三个if前面加上一个else 接线均是接的接的下拉电阻 ,还有后面应该是“==1” 就是 K1 和ZDPIN均按下时为1,与1相等执行相应的操作 我想问下,怎样才能够4个按键都能够使用中断? 外部中断口好像只有2个,怎么接线呢?
页:
[1]