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

TouchADS7843/readme.txt

Committer:
rakware
Date:
2015-05-06
Revision:
22:62f3bed03503

File content as of revision 22:62f3bed03503:

#include "mbed.h"
#include "ILI9341.h"
#include "Touch.h"

ILI9341 TFT(SPI_16, 12000000, D11, D12, D13, D10, D9, D8, "TFT"); // Spi 16bit, 12MHz, mosi, miso, sclk, cs, reset, dc

TouchScreenADS7843 TP(D11, D12, D13, D14, D15, &TFT); // ADS7843 -> mosi, miso, sclk, cs, irq, SPI_TFT

int main()
{
    TFT.claim(stdout);
    Matrix matrix;
    Coordinate ScreenSample[3];
    TP.TouchPanel_Calibrate();
    TP.GetCalibration(&matrix, &ScreenSample[0]);
    TP.SetCalibration(&matrix, &ScreenSample[0]);
    for(;;) {

        if (!TP._tp_irq) {
            if (TP.Read_Ads7843()) {
                TP.getDisplayPoint() ;
                TP.TP_DrawPoint(TP.display.x,TP.display.y, Blue);
                TFT.locate(25,0);
                printf("%03d",TP.display.x);
                TFT.locate(95,0);
                printf("%03d",TP.display.y);
                // Touchscreen area is larger than LCD area.
                // We use the bottom area outside the LCD area to clear the screen (y value > 320).
                if (TP.display.y > 320) {
                    TFT.cls();
                    TFT.locate(0,0);
                    printf(" X:");
                    TFT.locate(70,0);
                    printf(" Y:");
                }
            }
        }

    }
}