Вопрос наверное больше по С++...
Есть такой простой код для обработки нажатия кнопки.
Я хотел все перенести в отдельный класс.
Скажем MyButton.cpp
Тут attachInterrupt перенес в MyButton::init() - метод.
Выглядит все вот так:
При компиляции выдается такое сообщение об ощибке:
exit status 1
cannot convert 'MyButton::buttonPressedCallback' from type 'void (MyButton:()' to type 'void (*)()'
Есть такой простой код для обработки нажатия кнопки.
Код:
void setup() {
pinMode(BUTTON_PIN, INPUT_PULLUP);
Serial.begin(115200);
attachInterrupt(digitalPinToInterrupt(BUTTON_PIN), buttonPressedCallback, CHANGE);
}
void buttonPressedCallback() {
... обработка нажатия кнопки
}
Скажем MyButton.cpp
Тут attachInterrupt перенес в MyButton::init() - метод.
Выглядит все вот так:
Код:
void MyButton::init() {
pinMode(BUTTON_PIN, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(BUTTON_PIN), buttonPressedCallback, CHANGE);
}
void MyButton::buttonPressedCallback() {
... обработка нажатия кнопки
}
exit status 1
cannot convert 'MyButton::buttonPressedCallback' from type 'void (MyButton:()' to type 'void (*)()'