LCD01 SD kaart probleem.

Arduino specifieke Software
Gebruikers-avatar
Berichten: 48
Geregistreerd: 22 Jun 2013, 00:04

LCD01 SD kaart probleem.

Berichtdoor Duiker » 07 Jul 2013, 22:49

Enige tijd geleden kocht ik een grafisch LCD scherm Type LCD01 en dan de 5 inch versie. Nu ben ik welliswaar een beginner met het programmeren in C, en het gebruiken van een Atmega 2560 bord, maar teksten op het scherm neerzetten is al wel gelukt.

Nu wil ik de SD kaart gebruiken. Dit doe ik met het voorbeeld van UTFT_tinyFAT. Echter tot mijn verbazing gaat het compileren fout op de regel "myGLCD.file.initFAT();" Het lijkt alsof dit commando niet bestaat.

Zou iemand me hiermee verder kunnen helpen?

Misschien is mijn uitleg wat onduidelijk.

Code: Alles selecteren
// Demo_Landscape (C)2013 Henning Karlsen
// web: http://www.henningkarlsen.com/electronics
//
// This program is a demo of the loadBitmap()-function.
//
// This program requires UTFT_tinyFAT, UTFT v2.41 or higher,
// as well as tinyFAT v3.0 or higher.
//
// The image files must be present in the root folder
// of a FAT16 formatted SDcard in the module cardslot.
//
// Please note that this demo only supports the following
// display sizes:
//      220x176
//      320x240
//      400x240
//      480x272
//      800x480

#include <tinyFAT.h>
#include <UTFT.h>
#include <UTFT_tinyFAT.h>

// Declare which fonts we will be using
extern uint8_t SmallFont[];

UTFT         myGLCD(ITDB50, 38, 39, 40, 41);   // Remember to change the model parameter to suit your display module!
UTFT_tinyFAT myFiles(&myGLCD);

// List of filenames for pictures to display.
char* files320[]={"PIC301.RAW", "PIC302.RAW", "PIC303.RAW", "PIC304.RAW", "PIC305.RAW", "PIC306.RAW", "PIC307.RAW", "PIC308.RAW", "PIC309.RAW", "PIC310.RAW"}; // 320x240
char* files400[]={"PIC401.RAW", "PIC402.RAW", "PIC403.RAW", "PIC404.RAW", "PIC405.RAW", "PIC406.RAW", "PIC407.RAW", "PIC408.RAW", "PIC409.RAW", "PIC410.RAW"}; // 400x240
char* files220[]={"PIC601.RAW", "PIC602.RAW", "PIC603.RAW", "PIC604.RAW", "PIC605.RAW", "PIC606.RAW", "PIC607.RAW", "PIC608.RAW", "PIC609.RAW", "PIC610.RAW"}; // 220x176
char* files480[]={"PIC701.RAW", "PIC702.RAW", "PIC703.RAW", "PIC704.RAW", "PIC705.RAW", "", "", "", "", ""}; // 480x272
char* files800[]={"PIC801.RAW", "PIC802.RAW", "PIC803.RAW", "PIC804.RAW", "PIC805.RAW", "", "", "", "", ""}; // 800x480
char* files[10];
//IMG_2831.raw


int picsize_x, picsize_y;
boolean display_rendertime=false;  // Set this to true if you want the rendertime to be displayed after a picture is loaded
boolean display_filename=true;  // Set this to false to disable showing of filename

word res;
long sm, em;

void setup()
{
  myGLCD.InitLCD();
  myGLCD.clrScr();
  myGLCD.file.initFAT();
  myGLCD.setColor(255,255,255);
  myGLCD.setFont(SmallFont);
  picsize_x=myGLCD.getDisplayXSize();
  picsize_y=myGLCD.getDisplayYSize();
  switch (picsize_x)
  {
    case 220:
      for (int z=0; z<sizeof(files220)/sizeof(*files220);z++)
        files[z] = files220[z];
      break;
    case 320:
      for (int z=0; z<sizeof(files320)/sizeof(*files320);z++)
        files[z] = files320[z];
      break;
    case 400:
      for (int z=0; z<sizeof(files400)/sizeof(*files400);z++)
        files[z] = files400[z];
      break;
    case 480:
      for (int z=0; z<sizeof(files480)/sizeof(*files480);z++)
        files[z] = files480[z];
      break;
    case 800:
      for (int z=0; z<sizeof(files800)/sizeof(*files800);z++)
        files[z] = files800[z];
      break;
  }
}

void loop()
{
 
  for (int i=0; i<(sizeof(files)/sizeof(*files)); i++)
  {
    if (files[i]!="")
    {
      sm=millis();
      res=myFiles.loadBitmap(0, 0, picsize_x, picsize_y, files[i]);
      em=millis();
      if (res!=0)
      {
        if (res==0x10)
        {
          myGLCD.print("File not found...", 0, 0);
          myGLCD.print(files[i], 0, 14);
        }
        else
        {
          myGLCD.print("ERROR: ", 0, 0);
          myGLCD.printNumI(res, 56, 0);
        }
        delay(3000);
        myGLCD.clrScr();
      }
      else
      {
        if (display_rendertime==true)
        {
          myGLCD.print("Rendertime (secs):", 0, 0);
          myGLCD.printNumF(float((em-sm)/1000.0), 2, 160,0);
        }
        if (display_filename==true)
        {
          myGLCD.print(files[i], CENTER, myGLCD.getDisplayYSize()-12);
        }
        delay(3000);
      }
    }
  }
}
We leven in het midden van de ruimte, maar aan de rand van de tijd.

Advertisement

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: LCD01 SD kaart probleem.

Berichtdoor nicoverduin » 07 Jul 2013, 22:55

welke boodschap krijg je ?
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 48
Geregistreerd: 22 Jun 2013, 00:04

Re: LCD01 SD kaart probleem.

Berichtdoor Duiker » 08 Jul 2013, 22:56

Dit is de melding die ik krijg:

Demo_Landscape.ino: In function 'void setup()':
Demo_Landscape:51: error: 'class UTFT' has no member named 'file'

En die melding klopt ook wel, want myGLCD.file.initFAT(); wordt nergens gemaakt. En ik zou zelf niet weten hoe dat zou moeten. Dat is het probleem voor zover ik het kan zien.
We leven in het midden van de ruimte, maar aan de rand van de tijd.

Gebruikers-avatar
Berichten: 270
Geregistreerd: 30 Dec 2012, 11:42

Re: LCD01 SD kaart probleem.

Berichtdoor Rudi » 09 Jul 2013, 22:05

Gebruik je de laatste versie van de UTFT en UTFT_tinyFAT libraries? De maker heeft recent nieuwe updates geplaatst.
Arduinows!
Why do computer programmers confuse Halloween with Christmas? Because Oct 31 = Dec 25
I got 01100011 problems but a bit ain't 00000001

Gebruikers-avatar
Berichten: 48
Geregistreerd: 22 Jun 2013, 00:04

Re: LCD01 SD kaart probleem.

Berichtdoor Duiker » 09 Jul 2013, 22:44

Alle files zijn van de laatste 2 weken. Zojuist heb ik UTFT_tinyFAT uit de library verwijderd, deze opnieuw gedownload en geinstalleerd. Dan bestand, voorbeelden, UTFT_tinyFAT, en Demo_Landscape. Compilereen, en de fout treed weer op. Bij het portrait voorbeeld gaat het ook mis. Doe ik nu wat fout, of zit er een fout in het voorbeeld.
We leven in het midden van de ruimte, maar aan de rand van de tijd.

Gebruikers-avatar
Berichten: 270
Geregistreerd: 30 Dec 2012, 11:42

Re: LCD01 SD kaart probleem.

Berichtdoor Rudi » 10 Jul 2013, 21:21

Ik heb het hier ook geprobeerd maar krijg dezelfde fout, zowel met IDE 1.0.3 als IDE 1.0.5 versie.
Daarna de sketch geminimaliseerd tot het hoogst nodige (zie hieronder) maar, als verwacht, zelfde foutmelding zodra myGLCD.file.initFAT(); wordt bijgevoegd.
Ik stel wel vast dat bij een include de naam van de tinyFAT.h library niet in oranje tekstkleur veranderd, terwijl dat bij andere libraries wel zo is, alsof tinyFAT niet wordt gevonden. Via Sketch | Bibliotheek importeren maakt geen verschil uit.
Misschien de maker via zijn website eens kontakteren?

Code: Alles selecteren
#include <UTFT.h>
#include <tinyFAT.h>
#include <UTFT_tinyFAT.h>

UTFT         myGLCD(ITDB50, 38, 39, 40, 41);
UTFT_tinyFAT myFiles(&myGLCD);

void setup()
{
  myGLCD.InitLCD();
  myGLCD.clrScr();
  myGLCD.file.initFAT();
}

void loop()
{}
Arduinows!
Why do computer programmers confuse Halloween with Christmas? Because Oct 31 = Dec 25
I got 01100011 problems but a bit ain't 00000001

Gebruikers-avatar
Berichten: 48
Geregistreerd: 22 Jun 2013, 00:04

Re: LCD01 SD kaart probleem.

Berichtdoor Duiker » 12 Jul 2013, 21:24

Eigenlijk zie ik UTFT_tinyFAT ook niet terug in een include file. En daarom gaat het naar mijn mening mis. Ik zal de maker van de website eens contacten. Dat gaat wel even duren i.n.m. drukte. Het antwoord zal ik hier posten.
We leven in het midden van de ruimte, maar aan de rand van de tijd.

Gebruikers-avatar
Berichten: 48
Geregistreerd: 22 Jun 2013, 00:04

Re: LCD01 SD kaart probleem.

Berichtdoor Duiker » 15 Jul 2013, 20:29

Met het wat beter lezen van de documentatie kwam ik er achter dat behalve UTFT_tinyFAT, ook tinyFAT nodig is. En die stond nog niet in mijn library. Ht compileren gaat nu goed.

Wel vind ik het merkwaardig dat in de regel: #include <tinyFAT.h> tinyFAT niet kleurt. Heeft iemand een idee waaromdat dat zo is?




Code: Alles selecteren
// Demo_Landscape (C)2013 Henning Karlsen
// web: http://www.henningkarlsen.com/electronics
//
// This program is a demo of the loadBitmap()-function.
//
// This program requires UTFT_tinyFAT, UTFT v2.41 or higher,
// as well as tinyFAT v3.0 or higher.
//
// The image files must be present in the root folder
// of a FAT16 formatted SDcard in the module cardslot.
//
// Please note that this demo only supports the following
// display sizes:
//      220x176
//      320x240
//      400x240
//      480x272
//      800x480

#include <tinyFAT.h>
#include <UTFT.h>
#include <UTFT_tinyFAT.h>

// Declare which fonts we will be using
extern uint8_t SmallFont[];

UTFT         myGLCD(ITDB50, 38, 39, 40, 41);   // Remember to change the model parameter to suit your display module!
UTFT_tinyFAT myFiles(&myGLCD);

// List of filenames for pictures to display.
char* files320[]={"PIC301.RAW", "PIC302.RAW", "PIC303.RAW", "PIC304.RAW", "PIC305.RAW", "PIC306.RAW", "PIC307.RAW", "PIC308.RAW", "PIC309.RAW", "PIC310.RAW"}; // 320x240
char* files400[]={"PIC401.RAW", "PIC402.RAW", "PIC403.RAW", "PIC404.RAW", "PIC405.RAW", "PIC406.RAW", "PIC407.RAW", "PIC408.RAW", "PIC409.RAW", "PIC410.RAW"}; // 400x240
char* files220[]={"PIC601.RAW", "PIC602.RAW", "PIC603.RAW", "PIC604.RAW", "PIC605.RAW", "PIC606.RAW", "PIC607.RAW", "PIC608.RAW", "PIC609.RAW", "PIC610.RAW"}; // 220x176
char* files480[]={"PIC701.RAW", "PIC702.RAW", "PIC703.RAW", "PIC704.RAW", "PIC705.RAW", "", "", "", "", ""}; // 480x272
char* files800[]={"PIC801.RAW", "PIC802.RAW", "PIC803.RAW", "PIC804.RAW", "PIC805.RAW", "", "", "", "", ""}; // 800x480
char* files[10];

int picsize_x, picsize_y;
boolean display_rendertime=false;  // Set this to true if you want the rendertime to be displayed after a picture is loaded
boolean display_filename=true;  // Set this to false to disable showing of filename

word res;
long sm, em;

void setup()
{
  myGLCD.InitLCD();
  myGLCD.clrScr();
  file.initFAT();
  myGLCD.setColor(255,255,255);
  myGLCD.setFont(SmallFont);
  picsize_x=myGLCD.getDisplayXSize();
  picsize_y=myGLCD.getDisplayYSize();
  switch (picsize_x)
  {
    case 220:
      for (int z=0; z<sizeof(files220)/sizeof(*files220);z++)
        files[z] = files220[z];
      break;
    case 320:
      for (int z=0; z<sizeof(files320)/sizeof(*files320);z++)
        files[z] = files320[z];
      break;
    case 400:
      for (int z=0; z<sizeof(files400)/sizeof(*files400);z++)
        files[z] = files400[z];
      break;
    case 480:
      for (int z=0; z<sizeof(files480)/sizeof(*files480);z++)
        files[z] = files480[z];
      break;
    case 800:
      for (int z=0; z<sizeof(files800)/sizeof(*files800);z++)
        files[z] = files800[z];
      break;
  }
}

void loop()
{
 
  for (int i=0; i<(sizeof(files)/sizeof(*files)); i++)
  {
    if (files[i]!="")
    {
      sm=millis();
      res=myFiles.loadBitmap(0, 0, picsize_x, picsize_y, files[i]);
      em=millis();
      if (res!=0)
      {
        if (res==0x10)
        {
          myGLCD.print("File not found...", 0, 0);
          myGLCD.print(files[i], 0, 14);
        }
        else
        {
          myGLCD.print("ERROR: ", 0, 0);
          myGLCD.printNumI(res, 56, 0);
        }
        delay(3000);
        myGLCD.clrScr();
      }
      else
      {
        if (display_rendertime==true)
        {
          myGLCD.print("Rendertime (secs):", 0, 0);
          myGLCD.printNumF(float((em-sm)/1000.0), 2, 160,0);
        }
        if (display_filename==true)
        {
          myGLCD.print(files[i], CENTER, myGLCD.getDisplayYSize()-12);
        }
        delay(3000);
      }
    }
  }
}
We leven in het midden van de ruimte, maar aan de rand van de tijd.

Gebruikers-avatar
Berichten: 270
Geregistreerd: 30 Dec 2012, 11:42

Re: LCD01 SD kaart probleem.

Berichtdoor Rudi » 16 Jul 2013, 10:34

Ik had wel alle drie de libraries binnengehaald om even te testen, dus het verbaasde me dat het bij jou nu wel foutloos compileert.
Maar wat blijkt, de eerste code die je hebt gepost verschilt met die uit je laatste.
Vervang in de eerste code, in de setup() functie
myGLCD.file.initFAT();
door
file.initFAT();
en ze compileert ook foutloos.
Arduinows!
Why do computer programmers confuse Halloween with Christmas? Because Oct 31 = Dec 25
I got 01100011 problems but a bit ain't 00000001

Gebruikers-avatar
Berichten: 48
Geregistreerd: 22 Jun 2013, 00:04

Re: LCD01 SD kaart probleem.

Berichtdoor Duiker » 16 Jul 2013, 23:32

Nou Rudi, ik heb vandaag de code in de MEGA gezet, en er begint al iets te werken. Maar nog niet helemaal.

Wanneer het plaatje getoond wordt, dan gaan ongeveer de eerste 8 lijnen goed. Het kunnen er ook 10 of zo zijn. Maar dan gaat het mis. Daarna komen de lijnen niet meer netjes onder elkaar lijkt het wel. Hierdoor staat het plaatje zodanig scheef dat er niets meer te zien is. Het gekke is dat de eerste paar lijnen wel goed gaan. Ik geef even de gebruikte code.

Code: Alles selecteren
// Demo_Landscape (C)2013 Henning Karlsen
// web: http://www.henningkarlsen.com/electronics
//
// This program is a demo of the loadBitmap()-function.
//
// This program requires UTFT_tinyFAT, UTFT v2.41 or higher,
// as well as tinyFAT v3.0 or higher.
//
// The image files must be present in the root folder
// of a FAT16 formatted SDcard in the module cardslot.
//
// Please note that this demo only supports the following
// display sizes:
//      220x176
//      320x240
//      400x240
//      480x272
//      800x480

#include <tinyFAT.h>
#include <UTFT.h>
#include <UTFT_tinyFAT.h>

UTFT         myGLCD(ITDB50, 38, 39, 40, 41);   // Remember to change the model parameter to suit your display module!
UTFT_tinyFAT myFiles(&myGLCD);

void setup()
{
  myGLCD.InitLCD(LANDSCAPE);
  myGLCD.clrScr();
  file.initFAT();
}

void loop()
{
 myFiles.loadBitmap(0, 0, 800, 480, "PIC802.RAW");
 
 while(1) {};
}

We leven in het midden van de ruimte, maar aan de rand van de tijd.

Volgende

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 18 gasten