#include <AnimatedGIF.h> // Подключение библиотеки для работы с GIF-изображениями
AnimatedGIF gif; // Создание объекта для работы с GIF-изображениями
#include "badgers.h" // Подключение заголовочного файла с данными GIF-изображения
// Производительность отображения одного кадра на ESP32 с SPI на частоте 40 МГц
// Примечание: отсутствует прирост производительности DMA на меньших изображениях или GIF-изображениях с прозрачными пикселями
#define GIF_IMAGE badgers // No DMA 63 fps, DMA: 71fps Определение GIF-изображения для использования в проекте
#include <TFT_eSPI.h>
#include <SPI.h> // this is needed for display
// The display also uses hardware SPI, plus #9 & #10
#define TFT_CS 15
#define TFT_DC 2
#define TFT_MOSI 23
#define TFT_SCLK 18
TFT_eSPI tft = TFT_eSPI(); // Создаем объект tft для управления экраном с использованием библиотеки TFT_eSPI
void setup(void) {
Serial.begin(115200); // Инициализация последовательного порта для вывода отладочной информации
tft.begin(); // Инициализация экрана
tft.setRotation(1); // Устанавливаем ориентацию экрана
tft.fillScreen(TFT_BLACK); // Заполняем экран черным цветом
tft.setSwapBytes(true); // Если не правильно отображаются цвета, нужно включить эту настройку библиотки
tft.setTextSize(2); // Устанавливаем размер текста
tft.setTextColor(TFT_GREEN); // Устанавливаем цвет текста
}
void loop() {
long lTime = micros(); // Замер времени начала выполнения цикла
int iFrames = 0; // Счетчик количества кадров
if (gif.open((uint8_t *)GIF_IMAGE, sizeof(GIF_IMAGE), GIFDraw)) {
tft.startWrite(); // Начало записи на экран, для использования DMA чип-селект TFT блокируется
while (gif.playFrame(false, NULL)) {
// Каждая итерация отображает один кадр
iFrames++; // Увеличение счетчика кадров
yield(); // Передача управления другим потокам
}
gif.close(); // Закрытие файла GIF
tft.endWrite(); // Освобождение чип-селекта TFT для других устройств SPI
lTime = micros() - lTime; // Вычисление времени выполнения цикла
Serial.print(iFrames / (lTime / 1000000.0)); // Вывод средней частоты кадров в секунду
Serial.println(" fps"); // Вывод сообщения о частоте кадров
}
}
Loading
ili9341-cap-touch
ili9341-cap-touch