Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Adafruit_GFX.h> // Core graphics library
- #include <MCUFRIEND_kbv.h> // Hardware-specific library
- MCUFRIEND_kbv tft;
- #include <stdint.h>
- #include "TouchScreen.h"
- #include "bitmap_RGB.h"
- #include <Fonts/FreeSans9pt7b.h>
- #include <Fonts/FreeSans12pt7b.h>
- #define YP A2
- #define XM A3
- #define YM 8
- #define XP 9
- #define LCD_CS A3
- #define LCD_CD A2
- #define LCD_WR A1
- #define LCD_RD A0
- #define LCD_RESET A4
- #define BLACK 0x0000
- #define BLUE 0x001F
- #define RED 0xF800
- #define GREEN 0x07E0
- #define CYAN 0x07FF
- #define MAGENTA 0xF81F
- #define YELLOW 0xFFE0
- #define WHITE 0xFFFF
- TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);
- bool click = false;
- float timeSinceClick = 0;
- int currentScreen = -1;
- void setup(void) {
- Serial.begin(9600);
- resetScreen();
- }
- void resetScreen(){
- tft.reset();
- tft.begin(0x9341);
- tft.setRotation(3);
- tft.fillScreen(BLACK);
- }
- void loop(void) {
- checkClick();
- delay(50);
- if(click){
- timeSinceClick += 50;
- if(timeSinceClick > 5000){
- click = false;
- timeSinceClick = 0;
- drawMessage();
- }
- } else if(currentScreen != 0){
- drawMessage();
- }
- }
- void checkClick(void) {
- TSPoint p = ts.getPoint();
- pinMode(YP, OUTPUT); //restore the TFT control pins
- pinMode(XM, OUTPUT);
- if (p.z >= 0.01) {
- if(click){
- sendMessage();
- } else{
- if(currentScreen != 1) clicked();
- click = true;
- }
- }
- }
- void clicked(void){
- //resetScreen();
- Serial.println("Yeah");
- currentScreen = 1;
- tft.fillScreen(BLACK);
- tft.drawRGBBitmap(128, 88, heart, 64, 64);
- }
- void sendMessage(void){
- tft.fillScreen(BLACK);
- currentScreen = 2;
- click = false;
- timeSinceClick = 0;
- tft.setFont(&FreeSans9pt7b);
- tft.setCursor(120, 120);
- tft.setTextColor(WHITE);
- tft.setTextSize(1);
- tft.print("Sending...");
- delay(3000);
- drawMessage();
- }
- void drawMessage(void){
- currentScreen = 0;
- tft.fillScreen(BLACK);
- tft.setFont(&FreeSans12pt7b);
- tft.setCursor(100, 30);
- tft.setTextColor(CYAN);
- tft.setTextSize(1);
- tft.print("Hej Julia :)");
- tft.setFont(&FreeSans9pt7b);
- tft.setCursor(0, 80);
- tft.setTextColor(WHITE);
- tft.setTextSize(1);
- tft.print("\"This graveyard looks overcrowded. People must be dying to get in there.\"");
- tft.drawRGBBitmap(128, 140, heart, 64, 64);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement