Да, я знаю, что есть много тем об этом, и я думаю, что прочитал большинство из них, но либо я не понимаю ответы, либо я не смог адаптировать их к своему " case ".
Знайте, мой опыт работы в электронике c, а не дизайн программного обеспечения, поэтому для некоторых из вас мой вопрос может показаться глупым, но ... я застрял.
Я разработал печатную плату для некоторых целей. Он основан на модуле ESP32. У меня есть 5 кнопок, подключенных к ESP. ESP32-IDF очень сложен для меня, поэтому я попытался go для платформы Ardiuno. Теперь это начинает усложняться.
Чтобы обнаружить и дебатировать кнопки, я создал класс C ++ под названием Button. Скелет можно увидеть ниже.
class Button {
..
..
private:
void memberCallback() {
...
}
public:
Button(const uint8_t gpio ) {
..
attachInterrup(digitalPinToInterrupt(gpio), memberCallback, FALLING);
..
}
..
}
Я не нашел способа определить "memberCallback", не вызывая ошибок компиляции или не работая вообще.
Это должно быть распространенной проблемой поэтому, пожалуйста, предложите мне решение:)
Редактировать. Похоже, я не выразил себя достаточно ясно, извините. - Я знаю, что если я сделаю memberCallback stati c, он по крайней мере скомпилируется. Проблема в том, что я планировал использовать 5 экземпляров этого. Статистический обратный вызов c означает, что все экземпляры будут выполнять один и тот же код. 5 экземпляров означает 5 разных прерываний. Как мне их идентифицировать.