Ili9341 и сенсорный экран

Заменил две библиотеки на три новые.


На уно рисовалки работают, на хардварном спи - нет. На есп32 тест-скетч заработал и на хардварном варианте, но не сильно быстрее чем на софтовом. Адаптация свелась к перенумерации выводов. Думаю с RP2040 будет также. Тачскина библиотека компилируется только с уно. Из-за того что версии библиотек новые с выводом картинки в 150 Кб придётся заново кумекать.

// для ЕСП32
#include <Adafruit_GFX.h>     // Библиотека обработчика графики
#include <Adafruit_ILI9341.h> // Программные драйвера для дисплеев ILI9341

#define WIDTH 320
#define HEIGHT 240

#define TFT_CS   5
#define TFT_DC   12
//#define TFT_RST -1            // Пин подключения вывода RESET (ПРИ -1 СОЕДИНЯЕМ С +3,3В)
//#define TFT_MISO 19           // Пин подключения вывода дисплея SDO(MISO)
//#define TFT_MOSI 23           // Пин подключения вывода дисплея SDI(MOSI)
//#define TFT_CLK 18            // Пин подключения вывода дисплея SCK
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
//Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_MOSI, TFT_CLK, TFT_RST, TFT_MISO);  // Создаем объект дисплея и сообщаем библиотеке распиновку для работы с графикой

void setup() {
  tft.begin();
  tft.setRotation(1);
  
}

void loop() {
  float scale[6];
  for (byte i = 0; i < 6; i++)
    scale[i] = (float)rand() / RAND_MAX / 4;

  for (int y = 0; y < HEIGHT; y++) {
    for (int x = 0; x < WIDTH; x++) {
      uint8_t r, g, b;
      r = 15.5 + 15.5 * sin(x * scale[0] + sin(y * scale[1]));
      g = 31.5 + 31.5 * cos(y * scale[2] + sin(x * scale[3]));
      b = 15.5 + 15.5 * sin((x+y) * scale[4] + sin(y * scale[5]));
      uint16_t rgb565 = b | (g << 5) | (r << 11);
      tft.drawPixel(x, y, rgb565);
      
    }
  }
}