this code runs fine until I add in the if statement surrounding the draw screen() method. upon clicking the screen, the program instantly crashes, turning the screen white. any help would be appreciated.
"
// IMPORTANT: Adafruit_TFTLCD LIBRARY MUST BE SPECIFICALLY
// CONFIGURED FOR EITHER THE TFT SHIELD OR THE BREAKOUT BOARD.
// SEE RELEVANT COMMENTS IN Adafruit_TFTLCD.h FOR SETUP.
#include <Adafruit_GFX.h> // Core graphics library
#include <Adafruit_TFTLCD.h> // Hardware-specific library
#include <stdint.h>
#include "TouchScreen.h"
#define YP A2 // must be an analog pin, use "An" notation!
#define XM A3 // must be an analog pin, use "An" notation!
#define YM 8 // can be a digital pin
#define XP 9 // can be a digital pin
// The control pins for the LCD can be assigned to any digital or
// analog pins...but we'll use the analog pins as this allows us to
// double up the pins with the touch screen (see the TFT paint example).
#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog 0
#define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin
// When using the BREAKOUT BOARD only, use these 8 data lines to the LCD:
// For the Arduino Uno, Duemilanove, Diecimila, etc.:
// D0 connects to digital pin 8 (Notice these are
// D1 connects to digital pin 9 NOT in order!)
// D2 connects to digital pin 2
// D3 connects to digital pin 3
// D4 connects to digital pin 4
// D5 connects to digital pin 5
// D6 connects to digital pin 6
// D7 connects to digital pin 7
// For the Arduino Mega, use digital pins 22 through 29
// (on the 2-row header at the end of the board).
// Assign human-readable names to some common 16-bit color values:
#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF
Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
// If using the shield, all control and data lines are fixed, and
// a simpler declaration can optionally be used:
// Adafruit_TFTLCD tft;
int six;
int hundred;
int twenty;
int ten;
int four;
int eight;
int two;
int twelve;
TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);
void setup()
{
Serial.begin(9600);
Serial.println(F("TFT LCD test"));
tft.reset();
uint16_t identifier = tft.readID();
tft.begin(identifier);
tft.fillScreen(BLACK);
six = random(1, 6);
eight = random(1, 8);
twenty = random(1, 20);
hundred = random(1, 100);
four = random(1, 4);
ten = random(1, 10);
two = random(1, 2);
twelve = random(1, 12);
tft.setTextColor(WHITE); tft.setTextSize(4);
drawNumbers();
}
void loop() {
six = random(1, 6);
eight = random(1, 8);
twenty = random(1, 20);
hundred = random(1, 100);
four = random(1, 4);
ten = random(1, 10);
two = random(1, 2);
twelve = random(1, 12);
if (ts.getPoint().z != 0) {
drawNumbers();
}
}
void drawNumbers() {
tft.setCursor(0, 0);
tft.fillScreen(BLACK);
tft.println("D2: " + String(two));
tft.println("D4: " + String(four));
tft.println("D6: " + String(six));
tft.println("D8: " + String(eight));
tft.println("D10: " + String(ten));
tft.println("D12: " + String(twelve));
tft.println("D20: " + String(twenty));
tft.println("D100: " + String(hundred));
}"
this library seems largely ill documented, but this seems egreigous if its not on my end.
ts.getpoint()
returns. -- As it seems, the "Touchscreen" module is some local library. Would you mind to provide a link, please? Edit your question, don't add a comment.