Touchscreen digit recognition.
Dependencies: mbed TFT_fonts SPI_TFT_ILI9341 Adafruit_GFX FT6206 MMA8451Q
main.cpp@0:5264c6cecce9, 2015-03-23 (annotated)
- 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?
User | Revision | Line number | New 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 | */ |