Muszę sam sobie odpowiedzieć jak rozwiązałem problem
Tak na poważnie chcę przekazać innym którzy będą się borykać z tym problemem rozwiązanie.
Co prawda nie udało mi się zmusić do wczytania plików graficznych BMP do wyświetlacza
ale udało mi się to zrobić wczytując pliki graficzne RAW.
Jest przy tym pewna zaleta bo ponoć ten format szybciej się ładuje na wyświetlacz.
Dołączam oczywiście kod dla tego rozwiązania:
Pliki graficzne przygotowałem sobie konwerterem: ImageConverter 565 v2.3
Pzdr.
Tak na poważnie chcę przekazać innym którzy będą się borykać z tym problemem rozwiązanie.
Co prawda nie udało mi się zmusić do wczytania plików graficznych BMP do wyświetlacza
ale udało mi się to zrobić wczytując pliki graficzne RAW.
Jest przy tym pewna zaleta bo ponoć ten format szybciej się ładuje na wyświetlacz.
Dołączam oczywiście kod dla tego rozwiązania:
Kod:
// Draw SDCard Raw
#include <TFT_HX8357.h>
TFT_HX8357 tft = TFT_HX8357();
#include <SD.h>
#define SDC_CS 53
// ---------------------- Ustawienia programu ------------------------
void setup()
{
Serial.begin(9600);
delay(1000);
tft.init();
tft.setRotation(3);
tft.fillScreen(TFT_BLACK);
Serial.print("Initiation SD Card...");
if (!SD.begin(SDC_CS)) Serial.println("Failed!");
else Serial.println("OK!");
drawRAW("480Mouse.raw", 0, 0, 480, 320);
delay(1000);
}
// ------------------------ Pętla główna ------------------------------
void loop()
{
}
// ---------------------- Bitmap functions ---------------------------
#define RBUFF_SIZE 256
void drawRAW(char *filename, int16_t x, int16_t y, int16_t rawWidth, int16_t rawHeight)
{
File rawFile;
uint8_t sdbuffer[2 * RBUFF_SIZE];
Serial.println(filename);
if ((rawFile = SD.open(filename)) == NULL)
{
Serial.println(" File not found");
return;
}
tft.setWindow(x, y, x + rawWidth - 1, y + rawHeight - 1);
uint16_t nr = ((long)rawHeight * rawWidth)/RBUFF_SIZE;
while(nr--)
{
rawFile.read(sdbuffer, sizeof(sdbuffer));
tft.pushColors(sdbuffer, RBUFF_SIZE);
}
nr = ((long)rawHeight * rawWidth)%RBUFF_SIZE;
if (nr) {
rawFile.read(sdbuffer, nr<<1);
tft.pushColors(sdbuffer, nr);
}
rawFile.close();
}
Pliki graficzne przygotowałem sobie konwerterem: ImageConverter 565 v2.3
Pzdr.
Jeżeli pomogłem, to poproszę o punkt reputacji