新手求助 中断的问题
一个简单的遥控开关窗的小程序,0 1 口用的外部中断接限位开关,12 13遥控器, 2 3 电机驱动板。但是不知道为什么 子函数 mode1()和mode2()在向2或3口写低电平时总是只有3.8v左右,而不是0,而且执行完mode1,2()后 2,3口不是之前写入的高或低的状态,通通变成HIGH。只要删掉中断 ,其他的就很正常 不知道程序哪里出了问题,请大家帮忙看一下int guan = 12;
int kai = 13;
void setup()
{
pinMode(2,OUTPUT); //2 3电机驱动接口
pinMode(3,OUTPUT);
attachInterrupt(0,xv1,LOW); //限位开关中断
attachInterrupt(1,xv2,LOW);
pinMode(0,INPUT_PULLUP); //设置中断口为内部上拉模式
pinMode(1,INPUT_PULLUP);
pinMode(guan,INPUT_PULLUP);
pinMode(kai ,INPUT_PULLUP); // 遥控器
}
void loop()
{
if(digitalRead(guan)==LOW)
{
motor();
}
if(digitalRead(kai)==LOW)
{
motor2();
}
//其他模块及函数............
}
//**********************************************
void motor1() //关窗电机函数
{
digitalWrite(2,HIGH); //改high与low可控制电机正反转
digitalWrite(3,LOW);
}
void motor2() //开窗电机函数
{
digitalWrite(2,LOW); //改high与low可控制电机正反转
digitalWrite(3,HIGH);
}
//111111111111111111111111111111111111111
void xv1() //限位1
{
digitalWrite(2,HIGH);//电机刹车
digitalWrite(3,HIGH);
}
//22222222222222222222222222222222222222
void xv2() //限位2
{
digitalWrite(2,HIGH); //电机刹车
digitalWrite(3,HIGH);
}
页:
[1]