白云飞 发表于 2013-10-5 11:13:16

为什么我的主程序和中断在一起运行着??

我的主程序想让小车右边的轮子转动,当中断发生的时候,右边轮子停止停止,然后左边的轮子转动几秒种,问题是现在我的程序下载进去运行后,一运行右边轮子转动,然后我触发中断信号,左边轮子和右边轮子就一起动了,而且中断函数一旦运行就不再停止,谁帮我看看什么原因   抓狂啊

int INA1=20;//定义两个电机引脚
int INA2=21;
int PWMA=22;
int INB1=4;
int INB2=8;
int PWMB=3;

int IR1=2;   //定义一个传感器管脚


void setup()
{
pinMode(INA1,OUTPUT);//定义电机管脚为输出
pinMode(INA2,OUTPUT);
pinMode(PWMA,OUTPUT);
pinMode(INB1,OUTPUT);
pinMode(INB2,OUTPUT);
pinMode(PWMB,OUTPUT);
pinMode(IR1,INPUT);    //定义传感器管脚为输入
attachInterrupt(INT0, zuo, CHANGE);   //中断
}

voidzuo()   //中断函数,左边电机转动函数
{
   
      digitalWrite(INA1,LOW);
      digitalWrite(INA2,HIGH);
      analogWrite(PWMA,500);
       delay(3000);
   
}

voidyou()    //右边电机转动函数
{
    digitalWrite(INB1,HIGH);//使直流电机顺时针转
    digitalWrite(INB2,LOW);
    analogWrite(PWMB,46.5);
   
}

void loop()
{
   you();   //右边电机转动
}

林定祥 发表于 2013-10-5 13:05:04

中断中只叫左轮转,没有叫停右轮.同理退出中断后没有调整状态,因此就保持先前的状态了.
页: [1]
查看完整版本: 为什么我的主程序和中断在一起运行着??