Заменил две библиотеки на три новые.
На уно рисовалки работают, на хардварном спи - нет. На есп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);
}
}
}