Dependencies:   mbed

Committer:
Kerpower
Date:
Sun Jul 18 14:43:48 2010 +0000
Revision:
0:772a63029ab0

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kerpower 0:772a63029ab0 1 //
Kerpower 0:772a63029ab0 2 // TFT_4DGL is a class to drive 4D Systems TFT touch screens
Kerpower 0:772a63029ab0 3 //
Kerpower 0:772a63029ab0 4 // Copyright (C) <2010> Stephane ROCHON <stephane.rochon at free.fr>
Kerpower 0:772a63029ab0 5 //
Kerpower 0:772a63029ab0 6 // TFT_4DGL is free software: you can redistribute it and/or modify
Kerpower 0:772a63029ab0 7 // it under the terms of the GNU General Public License as published by
Kerpower 0:772a63029ab0 8 // the Free Software Foundation, either version 3 of the License, or
Kerpower 0:772a63029ab0 9 // (at your option) any later version.
Kerpower 0:772a63029ab0 10 //
Kerpower 0:772a63029ab0 11 // TFT_4DGL is distributed in the hope that it will be useful,
Kerpower 0:772a63029ab0 12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
Kerpower 0:772a63029ab0 13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
Kerpower 0:772a63029ab0 14 // GNU General Public License for more details.
Kerpower 0:772a63029ab0 15 //
Kerpower 0:772a63029ab0 16 // You should have received a copy of the GNU General Public License
Kerpower 0:772a63029ab0 17 // along with TFT_4DGL. If not, see <http://www.gnu.org/licenses/>.
Kerpower 0:772a63029ab0 18
Kerpower 0:772a63029ab0 19 #include "mbed.h"
Kerpower 0:772a63029ab0 20 #include "TFT_4DGL.h"
Kerpower 0:772a63029ab0 21
Kerpower 0:772a63029ab0 22 //******************************************************************************************************
Kerpower 0:772a63029ab0 23 void TFT_4DGL :: touch_mode(char mode) { // Send touch mode (WAIT, PRESS, RELEASE or MOVE)
Kerpower 0:772a63029ab0 24
Kerpower 0:772a63029ab0 25 char command[2]= "";
Kerpower 0:772a63029ab0 26
Kerpower 0:772a63029ab0 27 command[0] = GETTOUCH;
Kerpower 0:772a63029ab0 28 command[1] = mode;
Kerpower 0:772a63029ab0 29
Kerpower 0:772a63029ab0 30 writeCOMMAND(command, 2);
Kerpower 0:772a63029ab0 31 }
Kerpower 0:772a63029ab0 32
Kerpower 0:772a63029ab0 33 //******************************************************************************************************
Kerpower 0:772a63029ab0 34 void TFT_4DGL :: get_touch(int *x, int *y) { // Get the touch coordinates
Kerpower 0:772a63029ab0 35
Kerpower 0:772a63029ab0 36 char command[2] = "";
Kerpower 0:772a63029ab0 37
Kerpower 0:772a63029ab0 38 command[0] = GETTOUCH;
Kerpower 0:772a63029ab0 39 command[1] = GETPOSITION;
Kerpower 0:772a63029ab0 40
Kerpower 0:772a63029ab0 41 getTOUCH(command, 2, x, y);
Kerpower 0:772a63029ab0 42 }
Kerpower 0:772a63029ab0 43
Kerpower 0:772a63029ab0 44 //******************************************************************************************************
Kerpower 0:772a63029ab0 45 int TFT_4DGL :: touch_status(void) { // Get the touch screen status
Kerpower 0:772a63029ab0 46
Kerpower 0:772a63029ab0 47 char command[2] = "";
Kerpower 0:772a63029ab0 48
Kerpower 0:772a63029ab0 49 command[0] = GETTOUCH;
Kerpower 0:772a63029ab0 50 command[1] = STATUS;
Kerpower 0:772a63029ab0 51
Kerpower 0:772a63029ab0 52 return getSTATUS(command, 2);
Kerpower 0:772a63029ab0 53 }
Kerpower 0:772a63029ab0 54
Kerpower 0:772a63029ab0 55
Kerpower 0:772a63029ab0 56 //******************************************************************************************************
Kerpower 0:772a63029ab0 57 void TFT_4DGL :: wait_touch(int delay) { // wait until touch within a delay in milliseconds
Kerpower 0:772a63029ab0 58
Kerpower 0:772a63029ab0 59 char command[3]= "";
Kerpower 0:772a63029ab0 60
Kerpower 0:772a63029ab0 61 command[0] = WAITTOUCH;
Kerpower 0:772a63029ab0 62
Kerpower 0:772a63029ab0 63 command[1] = (delay >> 8) & 0xFF;
Kerpower 0:772a63029ab0 64 command[2] = delay & 0xFF;
Kerpower 0:772a63029ab0 65
Kerpower 0:772a63029ab0 66 writeCOMMAND(command, 3);
Kerpower 0:772a63029ab0 67 }
Kerpower 0:772a63029ab0 68
Kerpower 0:772a63029ab0 69 //******************************************************************************************************
Kerpower 0:772a63029ab0 70 void TFT_4DGL :: set_touch(int x1, int y1 , int x2, int y2) { // define touch area
Kerpower 0:772a63029ab0 71
Kerpower 0:772a63029ab0 72 char command[9]= "";
Kerpower 0:772a63029ab0 73
Kerpower 0:772a63029ab0 74 command[0] = SETTOUCH;
Kerpower 0:772a63029ab0 75
Kerpower 0:772a63029ab0 76 command[1] = (x1 >> 8) & 0xFF;
Kerpower 0:772a63029ab0 77 command[2] = x1 & 0xFF;
Kerpower 0:772a63029ab0 78
Kerpower 0:772a63029ab0 79 command[3] = (y1 >> 8) & 0xFF;
Kerpower 0:772a63029ab0 80 command[4] = y1 & 0xFF;
Kerpower 0:772a63029ab0 81
Kerpower 0:772a63029ab0 82 command[5] = (x2 >> 8) & 0xFF;
Kerpower 0:772a63029ab0 83 command[6] = x2 & 0xFF;
Kerpower 0:772a63029ab0 84
Kerpower 0:772a63029ab0 85 command[7] = (y2 >> 8) & 0xFF;
Kerpower 0:772a63029ab0 86 command[8] = y2 & 0xFF;
Kerpower 0:772a63029ab0 87
Kerpower 0:772a63029ab0 88 writeCOMMAND(command, 9);
Kerpower 0:772a63029ab0 89 }