Both types of latching buttons.
#include <ITDB02_Graph16.h>
#include <ITDB02_Touch.h>
#include <TFT_Extension_old.h>
#include <math.h>
// Declare which fonts we will be using
extern uint8_t SmallFont[];
//myGLCD(RS,WR,CS,RST,ALE,mode);
ITDB02 myGLCD(A1,A2,A0,A3,A5,ITDB32S);
//myTouch(TCLK,TCS,DIN,DOUT,IRQ);
ITDB02_Touch myTouch(13,10,11,12,A4);
TFT_Extension_old myTFT(&myGLCD, &myTouch, LANDSCAPE);
unsigned long timeStart, timeCollect[9];
char * functs[11] = {
"Set TC color: ", "Setup LC color: ", "Set TB color: ", "Set LB color: ","TC_Draw: ",
"LC_Draw: ","TB_Draw: ","LB_Draw: ", "Total Time: "};
boolean last = LOW, latch = false;
void setup()
{
myGLCD.InitLCD(LANDSCAPE);
myGLCD.clrScr();
myGLCD.setFont(SmallFont);
myTouch.InitTouch(LANDSCAPE);
myTouch.setPrecision(PREC_LOW);
Serial1.begin(115200);
startup();
}
void loop() {}
void startup()
{
myGLCD.setColor(255, 0, 0);//red box fill
myGLCD.fillRect(0, 0, 319, 13);//text box
myGLCD.setColor(255, 255, 255);//text color White
myGLCD.setBackColor(255, 0, 0);//background of text red
myGLCD.drawLine(0, 14, 319, 14);
myGLCD.print("LatchButtons", CENTER, 1);
myGLCD.setBackColor(0, 0, 0);
myGLCD.print("Touch screen to start", CENTER, 119);
myGLCD.clrScr();
myGLCD.print("Latches", CENTER, 50);
myGLCD.print("Buttons", CENTER, 170);
timeStart = micros();
myTFT.SetTouchCircleColors(0, ORANGE, PURPLE, FILL); // ID number, Pressed Color, Released Color, FILL/NOFILL)
timeCollect[0] = micros() - timeStart;
timeStart = micros();
myTFT.SetLatchCircleColors(1, WHITE, CYAN, FILL); // ID number, Latched Color, UnLatched Color, FILL/NOFILL)
timeCollect[1] = micros() - timeStart;
timeStart = micros();
myTFT.SetTouchButtonColors(0, GREEN, RED, FILL, ROUNDED); // ID number, Pressed Color, Released Color, FILL/NOFILL,ROUNDED/NOTROUNDED)
timeCollect[2] = micros() - timeStart;
timeStart = micros();
myTFT.SetLatchButtonColors(1, BLUE, YELLOW, FILL, ROUNDED); // ID number, Latched Color, UnLatched Color, FILL/NOFILL, ROUNDED/NOTROUNDED)
timeCollect[3] = micros() - timeStart;
getButton();
myGLCD.clrScr();
for(byte idx = 0; idx < 9; idx++)
{
myGLCD.print(functs[idx], 0, idx * 20);
myGLCD.printNumF(float(timeCollect[idx]) / 1000.00,3, 200, idx * 20 );
}
}
void getButton()
{
timeStart = micros();
myTFT.TouchCircle_Draw(55,180,50,0); // (x,y,radius, ID number)
timeCollect[4] = micros() - timeStart;
timeStart = micros();
myTFT.LatchCircle_Draw(265,55,50,1); // (x,y,radius, ID number)
timeCollect[5] = micros() - timeStart;
timeStart = micros();
myTFT.TouchButton_Draw(220,135,310,225,0);// (x1,y1,x2,y2, ID number)
timeCollect[6] = micros() - timeStart;
timeStart = micros();
myTFT.LatchButton_Draw(10,10,100,100,1);// (x1,y1,x2,y2, ID number)
timeCollect[7] = micros() - timeStart;
timeCollect[8] = micros() - timeCollect[0];
}
Output time in milliseconds
Set TC color: 0.011
Setup LC color: 0.007
Set TB color: 0.011
Set LB color: 0.011
TC_Draw: 1795.851
LC_Draw: 1795.851
TB_Draw: 167.507
LB_Draw: 167.515
Total Time: 3923.999
Both types of triangles:
#include <ITDB02_Graph16.h>
#include <ITDB02_Touch.h>
#include <TFT_Extension_old.h>
#include <math.h>
// Declare which fonts we will be using
extern uint8_t SmallFont[];
//myGLCD(RS,WR,CS,RST,ALE,mode);
ITDB02 myGLCD(A1,A2,A0,A3,A5,ITDB32S);
//myTouch(TCLK,TCS,DIN,DOUT,IRQ);
ITDB02_Touch myTouch(13,10,11,12,A4);
TFT_Extension_old myTFT(&myGLCD, &myTouch, LANDSCAPE);
unsigned long timeStart, timeCollect[5];
char * functs[11] = {
"Set TT color: ", "Setup LT color: ", "TT_Draw: ",
"LT_Draw: ", "Total Time: "};
void setup()
{
myGLCD.InitLCD(LANDSCAPE);
myGLCD.clrScr();
myGLCD.setFont(SmallFont);
myTouch.InitTouch(LANDSCAPE);
myTouch.setPrecision(PREC_LOW);
Serial1.begin(115200);
startup();
}
void loop() {}
void startup()
{
myGLCD.setColor(255, 0, 0);//red box fill
myGLCD.fillRect(0, 0, 319, 13);//text box
myGLCD.setColor(255, 255, 255);//text color White
myGLCD.setBackColor(255, 0, 0);//background of text red
myGLCD.drawLine(0, 14, 319, 14);
myGLCD.print("LatchButtons", CENTER, 1);
myGLCD.setBackColor(0, 0, 0);
myGLCD.print("Touch screen to start", CENTER, 119);
myGLCD.clrScr();
myGLCD.print("Latches", CENTER, 50);
myGLCD.print("Buttons", CENTER, 170);
timeStart = micros();
myTFT.SetTouchTriangleColors(0, ORANGE, PURPLE, FILL); // ID number, Pressed Color, Released Color, FILL/NOFILL)
timeCollect[0] = micros() - timeStart;
timeStart = micros();
myTFT.SetLatchTriangleColors(1, WHITE, CYAN, FILL); // ID number, Latched Color, UnLatched Color, FILL/NOFILL)
timeCollect[1] = micros() - timeStart;
getButton();
myGLCD.clrScr();
for(byte idx = 0; idx < 5; idx++)
{
myGLCD.print(functs[idx], 0, idx * 20);
myGLCD.printNumF(float(timeCollect[idx]) / 1000.00,3, 200, idx * 20 );
}
}
void getButton()
{
timeStart = micros();
myTFT.TouchTriangle_Draw(55,180,50,up, 0, 0); // (x,y,radius, ID number)
timeCollect[2] = micros() - timeStart;
timeStart = micros();
myTFT.LatchTriangle_Draw(265,55,50,up, 0, 1); // (x,y,radius, ID number)
timeCollect[3] = micros() - timeStart;
timeCollect[4] = micros() - timeCollect[0];
}
Output:
Set TT color: 0.007
Set LT color: 0.011
TT_Draw: 419.235
LT_Draw: 417.835
Total Time: 838.088?