projets de S3 s4 2021
Dependencies: mbed TFT_fonts SPI_TFT_ILI9341
main.cpp@0:42ec9a44bc24, 2019-01-07 (annotated)
- Committer:
- ecowboy
- Date:
- Mon Jan 07 06:40:27 2019 +0000
- Revision:
- 0:42ec9a44bc24
- Child:
- 1:33506fcfdd95
Initial
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ecowboy | 0:42ec9a44bc24 | 1 | #include "mbed.h" |
ecowboy | 0:42ec9a44bc24 | 2 | #include "ILI932x.h" |
ecowboy | 0:42ec9a44bc24 | 3 | |
ecowboy | 0:42ec9a44bc24 | 4 | //#include "SDFileSystem.h" |
ecowboy | 0:42ec9a44bc24 | 5 | //#include "SPI.h" |
ecowboy | 0:42ec9a44bc24 | 6 | #include "BMP565.h" |
ecowboy | 0:42ec9a44bc24 | 7 | #include "Arial12x12.h" |
ecowboy | 0:42ec9a44bc24 | 8 | #include "stdio.h" |
ecowboy | 0:42ec9a44bc24 | 9 | #include "touch.h" |
ecowboy | 0:42ec9a44bc24 | 10 | |
ecowboy | 0:42ec9a44bc24 | 11 | // For better pressure precision, we need to know the resistance |
ecowboy | 0:42ec9a44bc24 | 12 | // between X+ and X- Use any multimeter to read it |
ecowboy | 0:42ec9a44bc24 | 13 | // The 2.8" TFT Touch shield has 300 ohms across the X plate |
ecowboy | 0:42ec9a44bc24 | 14 | |
ecowboy | 0:42ec9a44bc24 | 15 | //Measured ADC values for (0,0) and (210-1,320-1) |
ecowboy | 0:42ec9a44bc24 | 16 | //TS_MINX corresponds to ADC value when X = 0 |
ecowboy | 0:42ec9a44bc24 | 17 | //TS_MINY corresponds to ADC value when Y = 0 |
ecowboy | 0:42ec9a44bc24 | 18 | //TS_MAXX corresponds to ADC value when X = 240 -1 |
ecowboy | 0:42ec9a44bc24 | 19 | //TS_MAXY corresponds to ADC value when Y = 320 -1 |
ecowboy | 0:42ec9a44bc24 | 20 | |
ecowboy | 0:42ec9a44bc24 | 21 | #define TS_MINX 116*2 |
ecowboy | 0:42ec9a44bc24 | 22 | #define TS_MAXX 890*2 |
ecowboy | 0:42ec9a44bc24 | 23 | #define TS_MINY 83*2 |
ecowboy | 0:42ec9a44bc24 | 24 | #define TS_MAXY 913*2 |
ecowboy | 0:42ec9a44bc24 | 25 | |
ecowboy | 0:42ec9a44bc24 | 26 | #define PIN_YP PTB3 // must be an analog pin, use "An" notation! |
ecowboy | 0:42ec9a44bc24 | 27 | #define PIN_XM PTB2 // must be an analog pin, use "An" notation! |
ecowboy | 0:42ec9a44bc24 | 28 | #define PIN_YM PTD5 // can be a digital pin |
ecowboy | 0:42ec9a44bc24 | 29 | #define PIN_XP PTA13 // can be a digital pin |
ecowboy | 0:42ec9a44bc24 | 30 | |
ecowboy | 0:42ec9a44bc24 | 31 | #define PIN_CS_TFT PTB3 |
ecowboy | 0:42ec9a44bc24 | 32 | #define PIN_RST_TFT PTC2 |
ecowboy | 0:42ec9a44bc24 | 33 | #define PIN_DC_TFT PTB2 |
ecowboy | 0:42ec9a44bc24 | 34 | #define PIN_WR_TFT PTB1 |
ecowboy | 0:42ec9a44bc24 | 35 | #define PIN_RD_TFT PTB0 |
ecowboy | 0:42ec9a44bc24 | 36 | |
ecowboy | 0:42ec9a44bc24 | 37 | #if 0 |
ecowboy | 0:42ec9a44bc24 | 38 | #define PIN_CS_SD PTD0 |
ecowboy | 0:42ec9a44bc24 | 39 | #define PIN_MOSI PTD2 |
ecowboy | 0:42ec9a44bc24 | 40 | #define PIN_MISO PTD3 |
ecowboy | 0:42ec9a44bc24 | 41 | #define PIN_SCLK PTD1 |
ecowboy | 0:42ec9a44bc24 | 42 | #endif |
ecowboy | 0:42ec9a44bc24 | 43 | |
ecowboy | 0:42ec9a44bc24 | 44 | #define PIN_CS_TSC PTD0 |
ecowboy | 0:42ec9a44bc24 | 45 | #define PIN_MOSI PTD2 |
ecowboy | 0:42ec9a44bc24 | 46 | #define PIN_MISO PTD3 |
ecowboy | 0:42ec9a44bc24 | 47 | #define PIN_SCLK PTD1 |
ecowboy | 0:42ec9a44bc24 | 48 | |
ecowboy | 0:42ec9a44bc24 | 49 | PinName dataBus[] = {PTA13,PTD5,PTD4,PTA12,PTA4,PTA5,PTC8,PTC9}; |
ecowboy | 0:42ec9a44bc24 | 50 | |
ecowboy | 0:42ec9a44bc24 | 51 | ILI932x TFT(BUS_8, dataBus, PIN_CS_TFT, PIN_RST_TFT, PIN_DC_TFT, PIN_WR_TFT, PIN_RD_TFT, "TFT", 240, 320); |
ecowboy | 0:42ec9a44bc24 | 52 | |
ecowboy | 0:42ec9a44bc24 | 53 | //SDFileSystem sd(PIN_MOSI, PIN_MISO, PIN_SCLK, PIN_CS_SD, "sd"); |
ecowboy | 0:42ec9a44bc24 | 54 | |
ecowboy | 0:42ec9a44bc24 | 55 | // Paint application - Demonstate both TFT and Touch Screen |
ecowboy | 0:42ec9a44bc24 | 56 | int ColorPaletteHigh = 30; |
ecowboy | 0:42ec9a44bc24 | 57 | int color = White; //Paint brush color |
ecowboy | 0:42ec9a44bc24 | 58 | unsigned int colors[8] = {Red, Green, Blue, Cyan, Yellow, Black, White, LightGrey}; |
ecowboy | 0:42ec9a44bc24 | 59 | |
ecowboy | 0:42ec9a44bc24 | 60 | |
ecowboy | 0:42ec9a44bc24 | 61 | TouchScreen tft(PIN_XP, PIN_YP, PIN_XM, PIN_YM); //init TouchScreen port pins |
ecowboy | 0:42ec9a44bc24 | 62 | |
ecowboy | 0:42ec9a44bc24 | 63 | |
ecowboy | 0:42ec9a44bc24 | 64 | int main(){ |
ecowboy | 0:42ec9a44bc24 | 65 | |
ecowboy | 0:42ec9a44bc24 | 66 | TFT.claim(stdout); // send stdout to the TFT display |
ecowboy | 0:42ec9a44bc24 | 67 | TFT.set_orientation(0); |
ecowboy | 0:42ec9a44bc24 | 68 | //TFT.Bitmap(28,90,265,65,p1); |
ecowboy | 0:42ec9a44bc24 | 69 | //wait(1); |
ecowboy | 0:42ec9a44bc24 | 70 | //TFT.cls(); |
ecowboy | 0:42ec9a44bc24 | 71 | TFT.set_font((unsigned char*) Arial12x12); |
ecowboy | 0:42ec9a44bc24 | 72 | TFT.foreground(Cyan); // set chars to Cyan |
ecowboy | 0:42ec9a44bc24 | 73 | TFT.locate(80,90); |
ecowboy | 0:42ec9a44bc24 | 74 | //printf("Initializing z...\r\n"); |
ecowboy | 0:42ec9a44bc24 | 75 | for(int i = 0; i<8; i++){ |
ecowboy | 0:42ec9a44bc24 | 76 | TFT.fillrect(i*30, 0, 30*(i+1), ColorPaletteHigh, colors[i]); |
ecowboy | 0:42ec9a44bc24 | 77 | } |
ecowboy | 0:42ec9a44bc24 | 78 | int zz=0; |
ecowboy | 0:42ec9a44bc24 | 79 | while(1){ |
ecowboy | 0:42ec9a44bc24 | 80 | zz = zz + 1; |
ecowboy | 0:42ec9a44bc24 | 81 | // a point object holds x y and z coordinates. |
ecowboy | 0:42ec9a44bc24 | 82 | //Point p = tft.getPoint(p); |
ecowboy | 0:42ec9a44bc24 | 83 | Point c(100,120,25); |
ecowboy | 0:42ec9a44bc24 | 84 | //map the ADC value read to into pixel co-ordinates |
ecowboy | 0:42ec9a44bc24 | 85 | //p.x = map(p.x, TS_MINX, TS_MAXX, 0, 240); |
ecowboy | 0:42ec9a44bc24 | 86 | //p.y = map(p.y, TS_MINY, TS_MAXY, 0, 320); |
ecowboy | 0:42ec9a44bc24 | 87 | |
ecowboy | 0:42ec9a44bc24 | 88 | // we have some minimum pressure we consider 'valid' |
ecowboy | 0:42ec9a44bc24 | 89 | // pressure of 0 means no pressing! |
ecowboy | 0:42ec9a44bc24 | 90 | TFT.locate(60,90); |
ecowboy | 0:42ec9a44bc24 | 91 | printf("z = %d \r\n", c.x); |
ecowboy | 0:42ec9a44bc24 | 92 | TFT.locate(60,120); |
ecowboy | 0:42ec9a44bc24 | 93 | printf("Initializing z...%d \r\n",zz); |
ecowboy | 0:42ec9a44bc24 | 94 | /*if (p.z > PRESSURE) { |
ecowboy | 0:42ec9a44bc24 | 95 | // Detect paint brush color change |
ecowboy | 0:42ec9a44bc24 | 96 | if(p.y < ColorPaletteHigh+2){ |
ecowboy | 0:42ec9a44bc24 | 97 | color = colors[p.x/30]; |
ecowboy | 0:42ec9a44bc24 | 98 | }else{ |
ecowboy | 0:42ec9a44bc24 | 99 | TFT.fillcircle(p.x,p.y,2,color); |
ecowboy | 0:42ec9a44bc24 | 100 | } |
ecowboy | 0:42ec9a44bc24 | 101 | }*/ |
ecowboy | 0:42ec9a44bc24 | 102 | } |
ecowboy | 0:42ec9a44bc24 | 103 | } |