TFT-экран + кнопки на SPI

Тема в разделе "Arduino & Shields", создана пользователем Mactep8, 25 янв 2014.

  1. Mactep8

    Mactep8 Нерд

    Доброго времени суток, уважаемые!

    Дано :
    TFT-экран (http://amperka.ru/collection/display/product/tft-lcd-160x128)
    Входной сдвиговый регистр 74HC165

    На регистре собраны кнопки как в этой статье.

    Проблема в следующем: пока линия MISO соединена с экраном кнопки не работают.
    Подключение:
    #define TFT_CS 9
    #define TFT_DC 5
    #define TFT_RST 6
    #define BUTTONS_SPI 8

    Для работы с экраном использую библиотеку TFT

    Код (Text):
    TFT MyScreen = TFT(TFT_CS, TFT_DC, TFT_RST);

    void setup()
    {
      ScreenInit();
    //  SPI.begin();
      pinMode(BUTTONS_SPI, OUTPUT);
      digitalWrite(BUTTONS_SPI, HIGH);

      UpdateScreen();
      Serial.begin(9600);
    }

    void loop()
    {
      digitalWrite(BUTTONS_SPI, LOW);
      uint8_t dState = SPI.transfer(0);
      digitalWrite(BUTTONS_SPI, HIGH);
      Serial.println(dState);
    }

    void ScreenInit()
    {
      MyScreen.begin();
      MyScreen.background(0, 0, 0);
      MyScreen.stroke(255, 255, 255);
      MyScreen.setTextSize(1);
      MyScreen.setRotation(2);
    }
    В UpdateScreen() ничего интересного - вывод строки "test" на экран.

    Кто может подсказать в чем проблема?
     
  2. Mactep8

    Mactep8 Нерд

    Не знаю в чем косяк, но поразмыслив я пришел к выводу, что дисплей - это устройство вывода.
    Следовательно слать на ардуину он ничего не должен.
    Раз так, то и MISO ему теоретически не нужна.
    Оторвал - все работает... пока...
    Может так и должно быть...
    Остается вопрос по распиновке дисплея:
    Зачем ему линии D/C и RESET?
    Ну что такое RESET вроде понятно из названия. Но зачем на него пин тратить? Нельзя ли его прицепить на RESET МК? И как тогда вызывать конструктор класса?
     
  3. geher

    geher Гуру

    DC (D/C) может быть сокращением от "постоянный ток" и обозначать либо электропитание, либо управление оным.
     
  4. Mactep8

    Mactep8 Нерд

    Прошерстил исходники библиотеки:
    D/C (Data/Command) - Данные/Управление
    С этим пином вопрос закрыт
     
  5. Mactep8

    Mactep8 Нерд

    Там же выяснил, что RESET опциональный. Если без него, то в конструктор передаем 0.
     
  6. Mactep8

    Mactep8 Нерд

    Относительно MISO - у меня все больше складывается впечатление, что он тупо всегда к земле притянут.
    Кто бы сказал наверняка...
     
  7. rav_75

    rav_75 Гик

    Перейдя по Вашей же ссылке, наткнулся на вот это
    И дальше в том же духе. Там еще примеры есть. MISO нигде не упоминается, не надо никуда притягивать.
     
  8. Mactep8

    Mactep8 Нерд

    Э-э-э-э. Как Вам сказать... В том-то и проблема, что ни где не упоминается.
    Я не спрашиваю, куда его притянуть.
    Вопрос в том, что подключение MISO мешает читать с других устройств на SPI. Всегда 0 получается.