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.