Errors compiling "URTouch_ButtonTest" on Mega 2560 with ILI9341

Hi all

1st message and new member.
I'm trying to run an example program "URTouch_ButtonTest" but have compiling errors. I have tried other test programs but no joy. I found an old post but its closed and didn't mention a solution.
Hardware is Mega 2560 + TFT LCD Mega Shield V2.2 + 3.2" Touch LCD ( TFT_320QDT_9341 ). My aim is to build the alarm clock by How to Mechatronics.
The blink example loads & runs OK.
All help is appreciated.

Here is the code. (The errors are after the code)

// URTouch_ButtonTest 
// Copyright (C)2015 Rinky-Dink Electronics, Henning Karlsen. All right reserved
// web: http://www.RinkyDinkElectronics.com/
//
// This program is a quick demo of how create and use buttons.
//
// This program requires the UTFT library.
//
// It is assumed that the display module is connected to an
// appropriate shield or that you know how to change the pin 
// numbers in the setup.
//

#include <UTFT.h>
#include <URTouch.h>

// Initialize display
// ------------------
// Set the pins to the correct ones for your development board
// -----------------------------------------------------------
// Standard Arduino Uno/2009 Shield            : <display model>,19,18,17,16
// Standard Arduino Mega/Due shield            : <display model>,38,39,40,41
// CTE TFT LCD/SD Shield for Arduino Due       : <display model>,25,26,27,28
// Teensy 3.x TFT Test Board                   : <display model>,23,22, 3, 4
// ElecHouse TFT LCD/SD Shield for Arduino Due : <display model>,22,23,31,33
//
// Remember to change the model parameter to suit your display module!
UTFT    myGLCD(ILI9341_16,38,39,40,41);

// Initialize touchscreen
// ----------------------
// Set the pins to the correct ones for your development board
// -----------------------------------------------------------
// Standard Arduino Uno/2009 Shield            : 15,10,14, 9, 8
// Standard Arduino Mega/Due shield            :  6, 5, 4, 3, 2
// CTE TFT LCD/SD Shield for Arduino Due       :  6, 5, 4, 3, 2
// Teensy 3.x TFT Test Board                   : 26,31,27,28,29
// ElecHouse TFT LCD/SD Shield for Arduino Due : 25,26,27,29,30
//
URTouch  myTouch( 6, 5, 4, 3, 2);

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

int x, y;
char stCurrent[20]="";
int stCurrentLen=0;
char stLast[20]="";

/*************************
**   Custom functions   **
*************************/

void drawButtons()
{
// Draw the upper row of buttons
  for (x=0; x<5; x++)
  {
    myGLCD.setColor(0, 0, 255);
    myGLCD.fillRoundRect (10+(x*60), 10, 60+(x*60), 60);
    myGLCD.setColor(255, 255, 255);
    myGLCD.drawRoundRect (10+(x*60), 10, 60+(x*60), 60);
    myGLCD.printNumI(x+1, 27+(x*60), 27);
  }
// Draw the center row of buttons
  for (x=0; x<5; x++)
  {
    myGLCD.setColor(0, 0, 255);
    myGLCD.fillRoundRect (10+(x*60), 70, 60+(x*60), 120);
    myGLCD.setColor(255, 255, 255);
    myGLCD.drawRoundRect (10+(x*60), 70, 60+(x*60), 120);
    if (x<4)
      myGLCD.printNumI(x+6, 27+(x*60), 87);
  }
  myGLCD.print("0", 267, 87);
// Draw the lower row of buttons
  myGLCD.setColor(0, 0, 255);
  myGLCD.fillRoundRect (10, 130, 150, 180);
  myGLCD.setColor(255, 255, 255);
  myGLCD.drawRoundRect (10, 130, 150, 180);
  myGLCD.print("Clear", 40, 147);
  myGLCD.setColor(0, 0, 255);
  myGLCD.fillRoundRect (160, 130, 300, 180);
  myGLCD.setColor(255, 255, 255);
  myGLCD.drawRoundRect (160, 130, 300, 180);
  myGLCD.print("Enter", 190, 147);
  myGLCD.setBackColor (0, 0, 0);
}

void updateStr(int val)
{
  if (stCurrentLen<20)
  {
    stCurrent[stCurrentLen]=val;
    stCurrent[stCurrentLen+1]='\0';
    stCurrentLen++;
    myGLCD.setColor(0, 255, 0);
    myGLCD.print(stCurrent, LEFT, 224);
  }
  else
  {
    myGLCD.setColor(255, 0, 0);
    myGLCD.print("BUFFER FULL!", CENTER, 192);
    delay(500);
    myGLCD.print("            ", CENTER, 192);
    delay(500);
    myGLCD.print("BUFFER FULL!", CENTER, 192);
    delay(500);
    myGLCD.print("            ", CENTER, 192);
    myGLCD.setColor(0, 255, 0);
  }
}

// Draw a red frame while a button is touched
void waitForIt(int x1, int y1, int x2, int y2)
{
  myGLCD.setColor(255, 0, 0);
  myGLCD.drawRoundRect (x1, y1, x2, y2);
  while (myTouch.dataAvailable())
    myTouch.read();
  myGLCD.setColor(255, 255, 255);
  myGLCD.drawRoundRect (x1, y1, x2, y2);
}

/*************************
**  Required functions  **
*************************/

void setup()
{
// Initial setup
  myGLCD.InitLCD();
  myGLCD.clrScr();

  myTouch.InitTouch();
  myTouch.setPrecision(PREC_MEDIUM);

  myGLCD.setFont(BigFont);
  myGLCD.setBackColor(0, 0, 255);
  drawButtons();  
}

void loop()
{
  while (true)
  {
    if (myTouch.dataAvailable())
    {
      myTouch.read();
      x=myTouch.getX();
      y=myTouch.getY();
      
      if ((y>=10) && (y<=60))  // Upper row
      {
        if ((x>=10) && (x<=60))  // Button: 1
        {
          waitForIt(10, 10, 60, 60);
          updateStr('1');
        }
        if ((x>=70) && (x<=120))  // Button: 2
        {
          waitForIt(70, 10, 120, 60);
          updateStr('2');
        }
        if ((x>=130) && (x<=180))  // Button: 3
        {
          waitForIt(130, 10, 180, 60);
          updateStr('3');
        }
        if ((x>=190) && (x<=240))  // Button: 4
        {
          waitForIt(190, 10, 240, 60);
          updateStr('4');
        }
        if ((x>=250) && (x<=300))  // Button: 5
        {
          waitForIt(250, 10, 300, 60);
          updateStr('5');
        }
      }

      if ((y>=70) && (y<=120))  // Center row
      {
        if ((x>=10) && (x<=60))  // Button: 6
        {
          waitForIt(10, 70, 60, 120);
          updateStr('6');
        }
        if ((x>=70) && (x<=120))  // Button: 7
        {
          waitForIt(70, 70, 120, 120);
          updateStr('7');
        }
        if ((x>=130) && (x<=180))  // Button: 8
        {
          waitForIt(130, 70, 180, 120);
          updateStr('8');
        }
        if ((x>=190) && (x<=240))  // Button: 9
        {
          waitForIt(190, 70, 240, 120);
          updateStr('9');
        }
        if ((x>=250) && (x<=300))  // Button: 0
        {
          waitForIt(250, 70, 300, 120);
          updateStr('0');
        }
      }

      if ((y>=130) && (y<=180))  // Upper row
      {
        if ((x>=10) && (x<=150))  // Button: Clear
        {
          waitForIt(10, 130, 150, 180);
          stCurrent[0]='\0';
          stCurrentLen=0;
          myGLCD.setColor(0, 0, 0);
          myGLCD.fillRect(0, 224, 319, 239);
        }
        if ((x>=160) && (x<=300))  // Button: Enter
        {
          waitForIt(160, 130, 300, 180);
          if (stCurrentLen>0)
          {
            for (x=0; x<stCurrentLen+1; x++)
            {
              stLast[x]=stCurrent[x];
            }
            stCurrent[0]='\0';
            stCurrentLen=0;
            myGLCD.setColor(0, 0, 0);
            myGLCD.fillRect(0, 208, 319, 239);
            myGLCD.setColor(0, 255, 0);
            myGLCD.print(stLast, LEFT, 208);
          }
          else
          {
            myGLCD.setColor(255, 0, 0);
            myGLCD.print("BUFFER EMPTY", CENTER, 192);
            delay(500);
            myGLCD.print("            ", CENTER, 192);
            delay(500);
            myGLCD.print("BUFFER EMPTY", CENTER, 192);
            delay(500);
            myGLCD.print("            ", CENTER, 192);
            myGLCD.setColor(0, 255, 0);
          }
        }
      }
    }
  }
}

ERRORS:

C:\Users\mhogan\AppData\Local\Temp\arduino_modified_sketch_962309\URTouch_ButtonTest.ino: In function 'void drawButtons()':
C:\Users\mhogan\AppData\Local\Temp\arduino_modified_sketch_962309\URTouch_ButtonTest.ino:75:28: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
   myGLCD.print("0", 267, 87);
                            ^
C:\Users\mhogan\AppData\Local\Temp\arduino_modified_sketch_962309\URTouch_ButtonTest.ino:81:32: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
   myGLCD.print("Clear", 40, 147);
                                ^
C:\Users\mhogan\AppData\Local\Temp\arduino_modified_sketch_962309\URTouch_ButtonTest.ino:86:33: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
   myGLCD.print("Enter", 190, 147);
                                 ^
C:\Users\mhogan\AppData\Local\Temp\arduino_modified_sketch_962309\URTouch_ButtonTest.ino: In function 'void updateStr(int)':
C:\Users\mhogan\AppData\Local\Temp\arduino_modified_sketch_962309\URTouch_ButtonTest.ino:103:45: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
     myGLCD.print("BUFFER FULL!", CENTER, 192);
                                             ^
C:\Users\mhogan\AppData\Local\Temp\arduino_modified_sketch_962309\URTouch_ButtonTest.ino:105:45: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
     myGLCD.print("            ", CENTER, 192);
                                             ^
C:\Users\mhogan\AppData\Local\Temp\arduino_modified_sketch_962309\URTouch_ButtonTest.ino:107:45: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
     myGLCD.print("BUFFER FULL!", CENTER, 192);
                                             ^
C:\Users\mhogan\AppData\Local\Temp\arduino_modified_sketch_962309\URTouch_ButtonTest.ino:109:45: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
     myGLCD.print("            ", CENTER, 192);
                                             ^
C:\Users\mhogan\AppData\Local\Temp\arduino_modified_sketch_962309\URTouch_ButtonTest.ino: In function 'void loop()':
C:\Users\mhogan\AppData\Local\Temp\arduino_modified_sketch_962309\URTouch_ButtonTest.ino:240:53: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
             myGLCD.print("BUFFER EMPTY", CENTER, 192);
                                                     ^
C:\Users\mhogan\AppData\Local\Temp\arduino_modified_sketch_962309\URTouch_ButtonTest.ino:242:53: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
             myGLCD.print("            ", CENTER, 192);
                                                     ^
C:\Users\mhogan\AppData\Local\Temp\arduino_modified_sketch_962309\URTouch_ButtonTest.ino:244:53: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
             myGLCD.print("BUFFER EMPTY", CENTER, 192);
                                                     ^
C:\Users\mhogan\AppData\Local\Temp\arduino_modified_sketch_962309\URTouch_ButtonTest.ino:246:53: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
             myGLCD.print("            ", CENTER, 192);
                                                     ^
Sketch uses 24968 bytes (9%) of program storage space. Maximum is 253952 bytes.
Global variables use 217 bytes (2%) of dynamic memory, leaving 7975 bytes for local variables. Maximum is 8192 bytes.

There are no errors, only warnings.

Your topic has been moved to a more suitable location on the forum. Installation and Troubleshooting is not for problems with (nor for advice on) your project.

Please edit your post, select all code and click the </> button to apply code tags. Repeat for the compiler output. Next save your post.

Ok and thank you sterretje
Can you see why I only have a blank screen with backlight?

Update: I have resolved the display issue after much searching.. I used the following code to setup the display which is strange since the display clearly states ILI9341. My touch works with the program but is inverted... like the touch layer is flipped. I will look at changing the library's to the ITDB32S and see how that goes & update this post.

UTFT myGLCD(ITDB32S,38,39,40,41);

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.