A controller for a 5 wire resistive touch screen

Committer:
Kerneels Bezuidenhout
Date:
Fri Sep 16 04:36:15 2016 +0200
Revision:
2:d0930962a3bb
Parent:
1:ed8485a78c6a
Child:
3:710534c5a240
Initial Version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kerneels Bezuidenhout 1:ed8485a78c6a 1 #ifndef TOUCHCONTROLLER_H
Kerneels Bezuidenhout 1:ed8485a78c6a 2 #define TOUCHCONTROLLER_H
Kerneels Bezuidenhout 1:ed8485a78c6a 3
Kerneels Bezuidenhout 1:ed8485a78c6a 4 // Macros for calibration function
Kerneels Bezuidenhout 1:ed8485a78c6a 5 #define X_T1 t[0][0]
Kerneels Bezuidenhout 1:ed8485a78c6a 6 #define X_T2 t[1][0]
Kerneels Bezuidenhout 1:ed8485a78c6a 7 #define X_T3 t[2][0]
Kerneels Bezuidenhout 1:ed8485a78c6a 8
Kerneels Bezuidenhout 1:ed8485a78c6a 9 #define Y_T1 t[0][1]
Kerneels Bezuidenhout 1:ed8485a78c6a 10 #define Y_T2 t[1][1]
Kerneels Bezuidenhout 1:ed8485a78c6a 11 #define Y_T3 t[2][1]
Kerneels Bezuidenhout 1:ed8485a78c6a 12
Kerneels Bezuidenhout 1:ed8485a78c6a 13 #define X_D1 d[0][0]
Kerneels Bezuidenhout 1:ed8485a78c6a 14 #define X_D2 d[1][0]
Kerneels Bezuidenhout 1:ed8485a78c6a 15 #define X_D3 d[2][0]
Kerneels Bezuidenhout 1:ed8485a78c6a 16
Kerneels Bezuidenhout 1:ed8485a78c6a 17 #define Y_D1 d[0][1]
Kerneels Bezuidenhout 1:ed8485a78c6a 18 #define Y_D2 d[1][1]
Kerneels Bezuidenhout 1:ed8485a78c6a 19 #define Y_D3 d[2][1]
Kerneels Bezuidenhout 1:ed8485a78c6a 20
Kerneels Bezuidenhout 1:ed8485a78c6a 21 //Includes
Kerneels Bezuidenhout 1:ed8485a78c6a 22 #include "mbed.h"
Kerneels Bezuidenhout 1:ed8485a78c6a 23
Kerneels Bezuidenhout 1:ed8485a78c6a 24 class TouchController
Kerneels Bezuidenhout 1:ed8485a78c6a 25 {
Kerneels Bezuidenhout 1:ed8485a78c6a 26 public:
Kerneels Bezuidenhout 2:d0930962a3bb 27 TouchController(PinName ur, PinName lr,PinName s, PinName ul, PinName ll, int num_of_samples = 5);
Kerneels Bezuidenhout 1:ed8485a78c6a 28
Kerneels Bezuidenhout 1:ed8485a78c6a 29 int TouchDetected();
Kerneels Bezuidenhout 1:ed8485a78c6a 30
Kerneels Bezuidenhout 1:ed8485a78c6a 31 float RawX();
Kerneels Bezuidenhout 1:ed8485a78c6a 32 float RawY();
Kerneels Bezuidenhout 1:ed8485a78c6a 33
Kerneels Bezuidenhout 1:ed8485a78c6a 34 float X();
Kerneels Bezuidenhout 1:ed8485a78c6a 35 float Y();
Kerneels Bezuidenhout 1:ed8485a78c6a 36
Kerneels Bezuidenhout 1:ed8485a78c6a 37 void Calibrate(float t[3][2], float d[3][2]);
Kerneels Bezuidenhout 1:ed8485a78c6a 38 private:
Kerneels Bezuidenhout 1:ed8485a78c6a 39 DigitalInOut _UR;
Kerneels Bezuidenhout 1:ed8485a78c6a 40 DigitalInOut _LR;
Kerneels Bezuidenhout 1:ed8485a78c6a 41 PinName _S;
Kerneels Bezuidenhout 1:ed8485a78c6a 42 DigitalInOut _UL;
Kerneels Bezuidenhout 1:ed8485a78c6a 43 DigitalInOut _LL;
Kerneels Bezuidenhout 1:ed8485a78c6a 44
Kerneels Bezuidenhout 2:d0930962a3bb 45 static const char DETECT = 1;
Kerneels Bezuidenhout 2:d0930962a3bb 46 static const char X = 2;
Kerneels Bezuidenhout 2:d0930962a3bb 47 static const char Y = 3;
Kerneels Bezuidenhout 1:ed8485a78c6a 48
Kerneels Bezuidenhout 2:d0930962a3bb 49 float A;
Kerneels Bezuidenhout 2:d0930962a3bb 50 float B;
Kerneels Bezuidenhout 2:d0930962a3bb 51 float C;
Kerneels Bezuidenhout 2:d0930962a3bb 52 float D;
Kerneels Bezuidenhout 2:d0930962a3bb 53 float E;
Kerneels Bezuidenhout 2:d0930962a3bb 54 float F;
Kerneels Bezuidenhout 1:ed8485a78c6a 55
Kerneels Bezuidenhout 2:d0930962a3bb 56 int n_samples;
Kerneels Bezuidenhout 1:ed8485a78c6a 57
Kerneels Bezuidenhout 1:ed8485a78c6a 58 void ConfigPins(char mode);
Kerneels Bezuidenhout 1:ed8485a78c6a 59 float MeasureS();
Kerneels Bezuidenhout 1:ed8485a78c6a 60
Kerneels Bezuidenhout 1:ed8485a78c6a 61 };
Kerneels Bezuidenhout 1:ed8485a78c6a 62 #endif