我有一个例程,用于在一定距离处移动带有编码器的电机,但是我希望能够中断该例程

时间:2018-11-06 08:58:26

标签: c++ arduino interrupt

我正在使用Arduino Serial1读取命令:

void loop()
{
  if (Serial1.available())
  {
    int commandNumber = Serial1.parseInt();
    switch (commandNumber)
    {
      case 0: TestStraightMovement(1); break;
      case 1: TestStraightMovement(-1); break;
    }
  }
}

我的代码输入TestStraightMovement时,我将附加中断。然后 我想在接收到Rx引脚的信息时中断该命令,分离中断并返回主循环以读取另一个命令。但是在我的命令输入之前就调用了中断。

1 个答案:

答案 0 :(得分:0)

这不是中断的工作方式,也不是中断的目的。中断将运行一些代码,然后将执行返回到发生中断时的位置。您使用了一个中断,以便在执行另一个函数的过程中发生某些事情,但是随后返回并完成了该函数。

如果要终止该功能并返回主循环,则不需要中断。您只需要重写该函数,即可以非阻塞方式检查任何输入,并可以在适当的时间退出。由于您没有发布太多代码,因此几乎不可能给您任何提示。