A controller for a 5 wire resistive touch screen

Committer:
Kerneels Bezuidenhout
Date:
Thu Sep 22 22:38:32 2016 +0200
Revision:
4:ab2e56595286
Parent:
3:710534c5a240
Added settle time to constructor and SetSettle(int settle) function

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 4:ab2e56595286 27 TouchController(PinName ur, PinName lr,PinName s, PinName ul, PinName ll, int num_of_samples = 5, int settle = 100);
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
Generic 3:710534c5a240 34 float GetX();
Generic 3:710534c5a240 35 float GetY();
Kerneels Bezuidenhout 1:ed8485a78c6a 36
Kerneels Bezuidenhout 1:ed8485a78c6a 37 void Calibrate(float t[3][2], float d[3][2]);
Kerneels Bezuidenhout 4:ab2e56595286 38
Kerneels Bezuidenhout 4:ab2e56595286 39 void SetSettleTime(int settle);
Kerneels Bezuidenhout 4:ab2e56595286 40
Kerneels Bezuidenhout 1:ed8485a78c6a 41 private:
Kerneels Bezuidenhout 1:ed8485a78c6a 42 DigitalInOut _UR;
Kerneels Bezuidenhout 1:ed8485a78c6a 43 DigitalInOut _LR;
Kerneels Bezuidenhout 1:ed8485a78c6a 44 PinName _S;
Kerneels Bezuidenhout 1:ed8485a78c6a 45 DigitalInOut _UL;
Kerneels Bezuidenhout 1:ed8485a78c6a 46 DigitalInOut _LL;
Kerneels Bezuidenhout 1:ed8485a78c6a 47
Kerneels Bezuidenhout 4:ab2e56595286 48 uint32_t _settle;
Kerneels Bezuidenhout 4:ab2e56595286 49
Kerneels Bezuidenhout 2:d0930962a3bb 50 static const char DETECT = 1;
Kerneels Bezuidenhout 2:d0930962a3bb 51 static const char X = 2;
Kerneels Bezuidenhout 2:d0930962a3bb 52 static const char Y = 3;
Kerneels Bezuidenhout 1:ed8485a78c6a 53
Kerneels Bezuidenhout 2:d0930962a3bb 54 float A;
Kerneels Bezuidenhout 2:d0930962a3bb 55 float B;
Kerneels Bezuidenhout 2:d0930962a3bb 56 float C;
Kerneels Bezuidenhout 2:d0930962a3bb 57 float D;
Kerneels Bezuidenhout 2:d0930962a3bb 58 float E;
Kerneels Bezuidenhout 2:d0930962a3bb 59 float F;
Kerneels Bezuidenhout 1:ed8485a78c6a 60
Kerneels Bezuidenhout 2:d0930962a3bb 61 int n_samples;
Kerneels Bezuidenhout 1:ed8485a78c6a 62
Kerneels Bezuidenhout 1:ed8485a78c6a 63 void ConfigPins(char mode);
Kerneels Bezuidenhout 1:ed8485a78c6a 64 float MeasureS();
Kerneels Bezuidenhout 1:ed8485a78c6a 65
Kerneels Bezuidenhout 1:ed8485a78c6a 66 };
Kerneels Bezuidenhout 1:ed8485a78c6a 67 #endif