Передача экземпляра класса в функцию в c ++ - PullRequest
0 голосов
/ 26 марта 2020

Я программирую в Arduino Land. используя библиотеку AccelStepper.h с классом AccelStepper

Я создал экземпляр следующим образом:

AccelStepper panStepper(AccelStepper::DRIVER, PAN_STEP_PIN, PAN_DIR_PIN);
AccelStepper tiltStepper(AccelStepper::DRIVER, TILT_STEP_PIN, TILT_DIR_PIN);
AccelStepper dollyStepper(AccelStepper::DRIVER, DOLLY_STEP_PIN, DOLLY_DIR_PIN);

Я хочу иметь возможность передать ссылку на один из экземпляров и иметь возможность измените параметры этого экземпляра.

Я использую следующее, чтобы создать функцию для работы с одним из экземпляров следующим образом:

void CalibrateAxis(AccelStepper& stepper, int min_pin, int max_pin) {

это испортило компилятор arduino, вызывая это выдвигать объявления для этой и других функций в середине прагмы в главном файле ino следующим образом:

// RemoteXY configurate  
#pragma pack(push, 1)

//
//
void CalibrateAxis(AccelStepper& stepper, int min_pin, int max_pin);
void CalibrateAll();
void StepperSetup();
void StepperLoop();
void writeProgram();
boolean readProgram();
void stepPan(int d);
void stepTilt(int d);
void stepDolly(int d);
void Run(int s);
void dumpProgram();
void dumpTest();
void PTDSetup();
void PTDLoop();
void StateMachineLoop();

#line 38 "C:\\Users\\chris\\OneDrive\\Documents\\Arduino\\RemoteXY Stuff\\PanTiltDollyVersion2\\PanTiltDollyVersion2.ino"
uint8_t RemoteXY_CONF[] =
{ 255,16,0,27,0,89,1,10,16,0,
130,1,8,1,84,7,29,130,1,8,
44,84,17,29,130,1,46,23,46,19,

не уверен, что я делаю неправильно .....

1 Ответ

0 голосов
/ 27 марта 2020

Не знаю, как принять ответ, но Delta_G дала хорошее решение. Спасибо!

Вы пытались просто дать ему свое собственное предварительное заявление в более подходящем месте и посмотреть, не мешает ли это Arduino сделать это для вас? - Delta_G 1

Размещение собственных предварительных объявлений устранило проблему.

исправило то, что не мог сделать компилятор Arduino.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...