Library for SeeedStudioTFTv2 2.8 Zoll 240x360 pixel touch SD card

Dependencies:   SPI_TFT_ILI9341

Dependents:   SeeedStudioTFTv2_HelloWorld SeeedTouchLCD Seeed_TFT_Touch_Shield_v2_HelloWorld

Fork of SeeedStudioTFTv2 by Michael Ammann

Revision:
4:4542d1ff81e4
Child:
5:366bdc7a8315
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SeeedStudioTFTv2.h	Sat Oct 19 20:51:48 2013 +0000
@@ -0,0 +1,85 @@
+/* mbed library for touchscreen connected to 4 mbed pins
+ * derive from SPI_TFT lib
+ * Copyright (c) 2011 Peter Drescher - DC2PD
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef MBED_TOUCH_H
+#define MBED_TOUCH_H
+
+#include "mbed.h"
+#include "SPI_TFT_ILI9341.h"
+#ifdef USE_SDCARD
+#include "SDFileSystem.h"
+#endif
+
+struct point {
+    int x;
+    int y;
+};
+
+class SeeedStudioTFTv2 : public  SPI_TFT_ILI9341
+#ifdef USE_SDCARD
+    , SDFileSystem
+#endif
+{
+public:
+    /** create a TFT with touch object connected to the pins:
+     *
+     * @param pin xp resistiv touch x+
+     * @param pin xm resistiv touch x-
+     * @param pin yp resistiv touch y+
+     * @param pin ym resistiv touch y-
+     * @param mosi,miso,sclk SPI connection to TFT
+     * @param cs pin connected to CS of display
+     * @param reset pin connected to RESET of display
+     * based on my SPI_TFT lib
+     */
+    SeeedStudioTFTv2(PinName xp, PinName xm, PinName yp, PinName ym,
+                     PinName mosi, PinName miso, PinName sclk,
+                     PinName csTft, PinName rstTft, PinName dcTft, PinName blTft,
+                     PinName csSd);
+
+    /** calibrate the touch display
+     *
+     * User is asked to touch on two points on the screen
+     */
+    void calibrate(void);
+
+    /** read x and y coord on screen
+     *
+     * @returns point(x,y)
+     */
+    bool
+    getPixel(point& p);
+
+    /** calculate coord on screen
+    *
+    * @param a_point point(analog x, analog y)
+    * @returns point(pixel x, pixel y)
+    *
+    */
+    point toPixel(point p);
+
+protected:
+    PinName _xm;
+    PinName _ym;
+    PinName _xp;
+    PinName _yp;
+
+    typedef enum { YES, MAYBE, NO } TOUCH;
+    TOUCH getTouch(point& p);
+    int readTouch(PinName p, PinName m, PinName a, PinName i);
+
+    int x_off,y_off;
+    int pp_tx,pp_ty;
+};
+
+#endif