• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
3.2" TFTLCD Shield for Arduino Mega2560
#1
Mam prośbę związaną z wyświetlaczem 3.2" TFT Shield opartym o bilblitekę: HX8347.

W IDE Arduino mam wybraną płytkę: Arduino Mega 2560 or Mega ADK.

Wszystkie z 24 przykładów z tej biblioteki działają oprócz: Draw_SDCard_Bitmap

Jak próbuje wykonać nawet tylko samą kompilację to wyskakuje mi taki błąd:

[Obrazek: hx8357.jpg]

Bardzo proszę o pomoc.
Sprawdzcie co jest nie tak z tą biblioteką, że nie chce się kompilować.
Siedzę nad tym już kilka dni i zabrakło mi pomysłów... Sad

Zależy mi aby rozgryźć ten problem bo potrzebuję na nim wyświetlać obrazki BMP z karty SD.
Jeżeli pomogłem, to poproszę o punkt reputacji Big Grin
 
Odpowiedź
#2
Big Grin 
Muszę sam sobie odpowiedzieć jak rozwiązałem problem  Smile

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 Big Grin
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości