ожидаемый безусловный идентификатор перед ‘.’ Библиотека токенов Arduino

Я получаю эту ошибку:

В функции ‘void loop ()’: headers_stepper_test: 12: ошибка: ожидается
безусловный идентификатор перед ‘.’ токен ожидал неквалифицированного идентификатора перед ‘.’ знак

в этом коде:

#include "StepperMotor.h"
void setup() {
// put your setup code here, to run once:
StepperMotor(8,9);
}

void loop() {
// put your main code here, to run repeatedly:void StepperMotor.moveDegrees(-180);
delay(1000);

}

Файл библиотеки cpp:

#include "Arduino.h"
StepperMotor::StepperMotor(int pin1, int pin2)
{
dirPin=pin1;
pinMode(dirPin,OUTPUT);
stepperPin=pin2;
pinMode(stepperPin,OUTPUT);

}

void StepperMotor::stepDegrees(bool dir, int steps);
{
digitalWrite(dirPin,dir);
delay(50);
for(int i=0;i<steps;i++){
digitalWrite(stepperPin, HIGH);
delayMicroseconds(800);
digitalWrite(stepperPin, LOW);
delayMicroseconds(800);
}

void StepperMotor::moveDegrees(int degreeNumber);
{
if (degrees > 0){
userAbs = (degreeNumber);
stepNumber = (userAbs * 200/360);
step(true,stepNumber);
}
if (degrees < 0){
userAbs = (-1*degreesNumber);
stepNumber = (userAbs * 200/360);
step(false,stepNumber);
}
}

заголовочный файл .h:

#ifndef StepperMotor_h
#define StepperMotor_h

#include "Arduino.h"
class StepperMotor
{
public:
StepperMotor(int pin1, int pin2);
void moveDegrees(int degreeNumber);
private:
void stepDegrees(bool dir, int steps);
int dirPin;
int stepPin;
float userAbs;
float stepNumber;
};
#endif

Когда я пытаюсь реализовать свои собственные файлы библиотеки. Я не уверен, нужен ли мне «void» в этом случае, но та же ошибка возникает в любом случае. Чем это вызвано?

-3

Решение

Давайте повторим ваш код:

void loop() {
// put your main code here, to run repeatedly:
void StepperMotor.moveDegrees(-180);
delay(1000);
}

Первым делом первым: не ставьте void в призыве к moveDegress() там.

Во-вторых:

Метод moveDegrees не является статичным, поэтому вам нужен экземпляр класса StepperMotor чтобы это назвать:

// note: you can initialize the variable here
// but I'll  do it in setup
StepperMotor stepperMotorInstance; // your variable

void setup() {
stepperMotorInstance = StepperMotor(8,9); // option 2: initialize variable in setup
}

void loop() {
// put your main code here, to run repeatedly:
stepperMotorInstance.moveDegrees(-180);
delay(1000);
}

Надеюсь, поможет

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector