Touchscreen digit recognition.

Dependencies:   mbed TFT_fonts SPI_TFT_ILI9341 Adafruit_GFX FT6206 MMA8451Q

Committer:
JackB
Date:
Mon Mar 23 20:02:09 2015 +0000
Revision:
0:5264c6cecce9
Child:
1:c44001c6bbf8
Demo Adafruit 2.8" TFT Touch Shield for Arduino w/Capacitive Touch

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JackB 0:5264c6cecce9 1 #include "mbed.h"
JackB 0:5264c6cecce9 2 #include "SPI_TFT_ILI9341.h"
JackB 0:5264c6cecce9 3 #include "FT6206.h"
JackB 0:5264c6cecce9 4
JackB 0:5264c6cecce9 5 #include "Arial12x12.h"
JackB 0:5264c6cecce9 6
JackB 0:5264c6cecce9 7 #define PIN_XP A3
JackB 0:5264c6cecce9 8 #define PIN_XM A1
JackB 0:5264c6cecce9 9 #define PIN_YP A2
JackB 0:5264c6cecce9 10 #define PIN_YM A0
JackB 0:5264c6cecce9 11 #define PIN_SCLK D13
JackB 0:5264c6cecce9 12 #define PIN_MISO D12
JackB 0:5264c6cecce9 13 #define PIN_MOSI D11
JackB 0:5264c6cecce9 14 #define PIN_CS_TFT D10 // chip select pin
JackB 0:5264c6cecce9 15 #define PIN_DC_TFT D9 // data/command select pin.
JackB 0:5264c6cecce9 16 #define PIN_RESET_TFT D8
JackB 0:5264c6cecce9 17 //#define PIN_BL_TFT D7
JackB 0:5264c6cecce9 18 #define PIN_CS_SD D4
JackB 0:5264c6cecce9 19
JackB 0:5264c6cecce9 20 #define PORTRAIT 0
JackB 0:5264c6cecce9 21 #define LANDSCAPE 1
JackB 0:5264c6cecce9 22
JackB 0:5264c6cecce9 23 #define PIN_SCL_FT6206 P0_28
JackB 0:5264c6cecce9 24 #define PIN_SDA_FT6206 P0_27
JackB 0:5264c6cecce9 25 #define PIN_INT_FT6206 D7
JackB 0:5264c6cecce9 26
JackB 0:5264c6cecce9 27 #define ILI9341_TFTWIDTH 320
JackB 0:5264c6cecce9 28 #define ILI9341_TFTHEIGHT 240
JackB 0:5264c6cecce9 29
JackB 0:5264c6cecce9 30 DigitalOut led1(LED1);
JackB 0:5264c6cecce9 31 DigitalOut led2(LED2);
JackB 0:5264c6cecce9 32 DigitalOut led3(LED3);
JackB 0:5264c6cecce9 33 DigitalOut led4(LED4);
JackB 0:5264c6cecce9 34
JackB 0:5264c6cecce9 35 //SPI_TFT_ILI9341 TFT(p5, p6, p7, p8, p9, p10,"TFT"); // mosi, miso, sclk, cs, reset, dc
JackB 0:5264c6cecce9 36 SPI_TFT_ILI9341 TFT(PIN_MOSI, PIN_MISO, PIN_SCLK, PIN_CS_TFT, PIN_RESET_TFT, PIN_DC_TFT, "TFT"); // mosi, miso, sclk, cs, reset, dc
JackB 0:5264c6cecce9 37 FT6206 FT6206(PIN_SDA_FT6206, PIN_SCL_FT6206, PIN_INT_FT6206); // sda, scl, int
JackB 0:5264c6cecce9 38
JackB 0:5264c6cecce9 39 int main()
JackB 0:5264c6cecce9 40 {
JackB 0:5264c6cecce9 41 //Configure the display driver
JackB 0:5264c6cecce9 42 TFT.claim(stdout);
JackB 0:5264c6cecce9 43 TFT.background(Black);
JackB 0:5264c6cecce9 44 TFT.foreground(White);
JackB 0:5264c6cecce9 45 TFT.set_orientation(LANDSCAPE);
JackB 0:5264c6cecce9 46 TFT.cls();
JackB 0:5264c6cecce9 47
JackB 0:5264c6cecce9 48 //Print a welcome message
JackB 0:5264c6cecce9 49 TFT.set_font((unsigned char*) Arial12x12);
JackB 0:5264c6cecce9 50 TFT.locate(0,0);
JackB 0:5264c6cecce9 51 TFT.printf("Hello mbed!\n");
JackB 0:5264c6cecce9 52
JackB 0:5264c6cecce9 53 FT6206.begin();
JackB 0:5264c6cecce9 54 int X1, Y1, X2, Y2;
JackB 0:5264c6cecce9 55 X2 = -100;
JackB 0:5264c6cecce9 56 while(1) {
JackB 0:5264c6cecce9 57 // if (FT6206.touched()) {
JackB 0:5264c6cecce9 58 if (FT6206.dataReceived()) {
JackB 0:5264c6cecce9 59 // led1 = !led1;
JackB 0:5264c6cecce9 60 // Retrieve a point
JackB 0:5264c6cecce9 61 TS_Point p = FT6206.getPoint();
JackB 0:5264c6cecce9 62 X1 = X2;
JackB 0:5264c6cecce9 63 Y1 = Y2;
JackB 0:5264c6cecce9 64 X2 = p.x;
JackB 0:5264c6cecce9 65 Y2 = p.y;
JackB 0:5264c6cecce9 66 // printf("Touch %3d %3d\n", p.x, p.y);
JackB 0:5264c6cecce9 67 if ((X1 > 0) && (Y1 > 0) && (X2 > 0) && (Y2 > 0)) {
JackB 0:5264c6cecce9 68 TFT.line(X1, Y1, X2, Y2, Yellow);
JackB 0:5264c6cecce9 69 }
JackB 0:5264c6cecce9 70 }
JackB 0:5264c6cecce9 71
JackB 0:5264c6cecce9 72
JackB 0:5264c6cecce9 73 // TFT.printf("Jacksoft\n");
JackB 0:5264c6cecce9 74 // wait(0.05);
JackB 0:5264c6cecce9 75 }
JackB 0:5264c6cecce9 76 }
JackB 0:5264c6cecce9 77
JackB 0:5264c6cecce9 78
JackB 0:5264c6cecce9 79 /*
JackB 0:5264c6cecce9 80 #include "mbed.h"
JackB 0:5264c6cecce9 81
JackB 0:5264c6cecce9 82 PwmOut mypwm(PWM_OUT);
JackB 0:5264c6cecce9 83
JackB 0:5264c6cecce9 84 DigitalOut myled(LED1);
JackB 0:5264c6cecce9 85
JackB 0:5264c6cecce9 86 int main() {
JackB 0:5264c6cecce9 87
JackB 0:5264c6cecce9 88 mypwm.period_ms(10);
JackB 0:5264c6cecce9 89 mypwm.pulsewidth_ms(1);
JackB 0:5264c6cecce9 90
JackB 0:5264c6cecce9 91 printf("pwm set to %.2f %%\n", mypwm.read() * 100);
JackB 0:5264c6cecce9 92
JackB 0:5264c6cecce9 93 while(1) {
JackB 0:5264c6cecce9 94 myled = !myled;
JackB 0:5264c6cecce9 95 wait(1);
JackB 0:5264c6cecce9 96 }
JackB 0:5264c6cecce9 97 }
JackB 0:5264c6cecce9 98 */