У меня был OLED-дисплей SPI 128x64, и я использовал Adafruit_GFX и Adafruit_SSD1306 для управления им. У меня было имя класса Engine, у которого был конструктор publi c, например:
Engine::Engine() {
display.begin(2U, 0U, true, false);
// Define some pinmode not a problem
pinMode(button1Pin, INPUT_PULLUP);
pinMode(button2Pin, INPUT_PULLUP);
pinMode(xPin, INPUT);
pinMode(yPin, INPUT);
pinMode(buzzerPin, OUTPUT);
//clear the screen and display
clearScreen();
display.display();
time = 0;
}
Затем в моем файле .ino у меня есть что-то вроде этого:
Engine engine = Engine();
void setup() {
Serial.begin(115200);
Serial.println("testing...");
}
Проблема в что программа зависла. Не знаю, работал ли код или нет (думаю, что нет). Я попытался отладить его, и если у меня есть объявление двигателя внутри настройки, все будет в порядке. Или если я удалю строку display.begin()
и оставлю объявление вне настройки. Зачем? Мне нужно было позвонить display.begin()
внутри setup()
. Как с этим уйти?
PS: Я использовал для этого визуальный микро. Но после этого я перемещаю код на Arduino, и проблема все равно появляется.