极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8307|回复: 1

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

[复制链接]
发表于 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);   //中断
}

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

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

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

使用道具 举报

发表于 2013-10-5 13:05:04 | 显示全部楼层
中断中只叫左轮转,没有叫停右轮.同理退出中断后没有调整状态,因此就保持先前的状态了.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 11:41 , Processed in 0.040876 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表