Basically i glued Peter Drescher and Simon Ford libs in a GraphicsDisplay class, then derived TFT or LCD class (which inherits Protocols class), then the most derived ones (Inits), which are per-display and are the only part needed to be adapted to diff hw.

Fork of UniGraphic by GraphicsDisplay

Committer:
rakware
Date:
Wed May 06 16:52:07 2015 +0000
Revision:
22:62f3bed03503
added touch for ADS7843 bound to TFT class

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rakware 22:62f3bed03503 1 #include "mbed.h"
rakware 22:62f3bed03503 2 #include "ILI9341.h"
rakware 22:62f3bed03503 3 #include "Touch.h"
rakware 22:62f3bed03503 4
rakware 22:62f3bed03503 5 ILI9341 TFT(SPI_16, 12000000, D11, D12, D13, D10, D9, D8, "TFT"); // Spi 16bit, 12MHz, mosi, miso, sclk, cs, reset, dc
rakware 22:62f3bed03503 6
rakware 22:62f3bed03503 7 TouchScreenADS7843 TP(D11, D12, D13, D14, D15, &TFT); // ADS7843 -> mosi, miso, sclk, cs, irq, SPI_TFT
rakware 22:62f3bed03503 8
rakware 22:62f3bed03503 9 int main()
rakware 22:62f3bed03503 10 {
rakware 22:62f3bed03503 11 TFT.claim(stdout);
rakware 22:62f3bed03503 12 Matrix matrix;
rakware 22:62f3bed03503 13 Coordinate ScreenSample[3];
rakware 22:62f3bed03503 14 TP.TouchPanel_Calibrate();
rakware 22:62f3bed03503 15 TP.GetCalibration(&matrix, &ScreenSample[0]);
rakware 22:62f3bed03503 16 TP.SetCalibration(&matrix, &ScreenSample[0]);
rakware 22:62f3bed03503 17 for(;;) {
rakware 22:62f3bed03503 18
rakware 22:62f3bed03503 19 if (!TP._tp_irq) {
rakware 22:62f3bed03503 20 if (TP.Read_Ads7843()) {
rakware 22:62f3bed03503 21 TP.getDisplayPoint() ;
rakware 22:62f3bed03503 22 TP.TP_DrawPoint(TP.display.x,TP.display.y, Blue);
rakware 22:62f3bed03503 23 TFT.locate(25,0);
rakware 22:62f3bed03503 24 printf("%03d",TP.display.x);
rakware 22:62f3bed03503 25 TFT.locate(95,0);
rakware 22:62f3bed03503 26 printf("%03d",TP.display.y);
rakware 22:62f3bed03503 27 // Touchscreen area is larger than LCD area.
rakware 22:62f3bed03503 28 // We use the bottom area outside the LCD area to clear the screen (y value > 320).
rakware 22:62f3bed03503 29 if (TP.display.y > 320) {
rakware 22:62f3bed03503 30 TFT.cls();
rakware 22:62f3bed03503 31 TFT.locate(0,0);
rakware 22:62f3bed03503 32 printf(" X:");
rakware 22:62f3bed03503 33 TFT.locate(70,0);
rakware 22:62f3bed03503 34 printf(" Y:");
rakware 22:62f3bed03503 35 }
rakware 22:62f3bed03503 36 }
rakware 22:62f3bed03503 37 }
rakware 22:62f3bed03503 38
rakware 22:62f3bed03503 39 }
rakware 22:62f3bed03503 40 }