在Arduino重置后,为什么这段代码会崩溃?

时间:2018-02-15 21:06:40

标签: c++ class oop arduino crash

我正在尝试使用Arduino制作面向对象的机器人手臂。我正试图通过类联合控制步进电机。我已经在草图编译和执行方面遇到了一些问题,因为我对C ++很新,我对类,指针等并不是很了解。最后,我发现这段代码有效:

#include <Stepper.h>

class Joint {
  private:
    int NextStep;

  public:
    Stepper *TestStepper;
    *Joint(int StepsPerRevolution, int DirPin, int StepPin) {
      TestStepper = new Stepper(StepsPerRevolution, DirPin, StepPin);
    }
};

Joint a(200, 3, 4);

void setup() { 
}

void loop() {
  a.TestStepper->step(1);
  delay(2);
}

工作正常。唯一的问题是,当我重置(从板载按钮)Arduino时,它崩溃了,我甚至无法重新启动,甚至拔掉它并将其重新插入。为了使它工作,我必须首先拔掉它,上传新代码(在这里)几次,直到我可以恢复工作,然后上传代码与类。

#include <Stepper.h>
Stepper stepper(200, 3, 4);

void setup(){
}

void loop() {
  stepper.step(1);
  delay(2);
}

我想我已经发现它与该类有关,因为其他代码即使在多次重置后也能正常工作。此外,当我重置一个“崩溃的”Arduino时,它做了一小步,好像它在循环一次迭代后被阻塞了()

我正在使用Arduino Due和A4988步进驱动程序。我正在通过Native USB对Arduino进行编程,并使用9v电池为电机供电。

0 个答案:

没有答案