Arduino: пользовательский класс для отображения не работает;нет ошибок компилятора - PullRequest
0 голосов
/ 29 ноября 2018

Я попытался создать класс, чтобы сделать использование дисплеев с библиотекой ucg более удобным.Я думаю, что основная проблема заключается в том, что я использую экземпляр класса ucg в качестве члена моего собственного класса.Но код кажется правильным, и я не получаю никаких ошибок компилятора.Тем не менее мой дисплей ничего не делает.

Примечание: контакты правильные

Заголовочный файл:

#ifndef Display_h
#define Display_h

#include "Arduino.h"
#include <SPI.h>
#include "Ucglib.h"

class Display
{
    public:
        Display(int sck, int mosi, int ds_rs, int cs, int reset);

    private:
        Ucglib_ILI9341_18x240x320_SWSPI _display;
};

#endif

Файл Cpp:

#include "Display.h"

Display::Display(int sck, int mosi, int ds_rs, int cs, int reset) : _display (sck, mosi, ds_rs, cs, reset)
// Constructor for the display class
{
    delay(1000);
}

Редактировать:

Тестовая программа. На мониторе Seriell в Arduino IDE не отображается текст «Тест», поэтому я предполагаю, что программа застревает где-то в конструкторе.

#include "Display.h"

const int sck = 7;
const int mosi = 6;
const int ds_rs = 5;
const int cs = 3;
const int reset = 4;

Display lcd = Display(sck, mosi, ds_rs, cs, reset);

void setup() 
{

  Serial.begin(115200); 
  Serial.println("Test");
}

1 Ответ

0 голосов
/ 29 ноября 2018

Проблема в delay(1000); в конструкторе класса.Переменная определена до setup(), и задержка не может быть выполнена там.Выполнение эскиза падает там.

Удалите delay из конструктора класса Display.

...