TSI button support. You may custom the tsi channel of the button and button number.

Dependents:   FRDM_KL25Z_TSI_Touch

Fork of TSI by Mbed

Revision:
4:4b7c5856807e
Parent:
3:1a60ef257879
--- a/TSISensor.cpp	Thu May 09 09:24:34 2013 +0000
+++ b/TSISensor.cpp	Thu May 21 16:29:40 2015 +0000
@@ -25,60 +25,27 @@
 #include "TSISensor.h"
 
 #define NO_TOUCH                 0
-#define SLIDER_LENGTH           40 //LENGTH in mm
-#define TOTAL_ELECTRODE          2
-
-#define TSI0a        0
-#define TSI1         1
-#define TSI2         2
-#define TSI3         3
-#define TSI4         4
-#define TSI5         5
-#define TSI6         6
-#define TSI7         7
-#define TSI8         8
-#define TSI9         9
-#define TSI10        10
-#define TSI11        11
-#define TSI12        12
-#define TSI13        13
-#define TSI14        14
-#define TSI15        15
+#define TOTAL_ELECTRODE          ELECTRODE_NUM
+#define NSCN_NUM                 12
 
-/*Chose the correct TSI channel for the electrode number*/
-#define ELECTRODE0   TSI9
-#define ELECTRODE1   TSI10
-#define ELECTRODE2   TSI0a
-#define ELECTRODE3   TSI1
-#define ELECTRODE4   TSI2
-#define ELECTRODE5   TSI3
-#define ELECTRODE6   TSI4
-#define ELECTRODE7   TSI5
-#define ELECTRODE8   TSI6
-#define ELECTRODE9   TSI7
-#define ELECTRODE10  TSI8
-#define ELECTRODE11  TSI11
-#define ELECTRODE12  TSI12
-#define ELECTRODE13  TSI13
-#define ELECTRODE14  TSI14
-#define ELECTRODE15  TSI15
+#define TSI_CH0         0
+#define TSI_CH1         1
+#define TSI_CH2         2
+#define TSI_CH3         3
+#define TSI_CH4         4
+#define TSI_CH5         5
+#define TSI_CH6         6
+#define TSI_CH7         7
+#define TSI_CH8         8
+#define TSI_CH9         9
+#define TSI_CH10        10
+#define TSI_CH11        11
+#define TSI_CH12        12
+#define TSI_CH13        13
+#define TSI_CH14        14
+#define TSI_CH15        15
 
-#define THRESHOLD0   100
-#define THRESHOLD1   100
-#define THRESHOLD2   100
-#define THRESHOLD3   100
-#define THRESHOLD4   100
-#define THRESHOLD5   100
-#define THRESHOLD6   100
-#define THRESHOLD7   100
-#define THRESHOLD8   100
-#define THRESHOLD9   100
-#define THRESHOLD10   100
-#define THRESHOLD11   100
-#define THRESHOLD12   100
-#define THRESHOLD13   100
-#define THRESHOLD14   100
-#define THRESHOLD15   100
+
 
 static uint8_t total_electrode = TOTAL_ELECTRODE;
 static uint8_t elec_array[16]={ELECTRODE0,ELECTRODE1,ELECTRODE2,ELECTRODE3,ELECTRODE4,ELECTRODE5,
@@ -110,7 +77,7 @@
                    | TSI_GENCS_DVOLT(0)
                    | TSI_GENCS_EXTCHRG(7)
                    | TSI_GENCS_PS(4)
-                   | TSI_GENCS_NSCN(11)
+                   | TSI_GENCS_NSCN(NSCN_NUM-1)
                    | TSI_GENCS_TSIIEN_MASK
                    | TSI_GENCS_STPE_MASK
                    );
@@ -194,6 +161,21 @@
     return AbsoluteDistancePosition;
 }
 
+uint8_t TSISensor::Pressed(uint8_t ch){
+    return (gu16Delta[ch] > gu16Threshold[ch]);
+}
+
+float TSISensor::readTSI(uint8_t ch){
+    if(Pressed(ch))
+        return (gu16Delta[ch]/(NSCN_NUM*128.0 - gu16Baseline[ch]));
+    else
+        return 0;
+}
+
+uint16_t TSISensor::readTSI_u16(uint8_t ch){
+    return (gu16Delta[ch]);
+}
+
 static void changeElectrode(void)
 {
     int16_t u16temp_delta;