a

Dependencies:   LCD_DISCO_F429ZI mbed TS_DISCO_F429ZI BSP_DISCO_F429ZI

Revision:
0:515a71b6fd11
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Keyboard_Ts.cpp	Wed May 11 14:04:35 2022 +0000
@@ -0,0 +1,90 @@
+#include "Keyboard_Ts.h"
+#include "TS_DISCO_F429ZI.h"
+
+TS_DISCO_F429ZI ts;
+
+TS_StateTypeDef TS_State;
+
+KeyboardTs::KeyboardTs(unsigned char ucButtonPos): ucButtonMode(ucButtonPos){}
+
+enum KeyboardState KeyboardTs::eRead(void)
+{
+    ts.GetState(&TS_State);
+    unsigned int uiX;
+    unsigned int uiY;
+    if (TS_State.TouchDetected)
+    {
+        uiX=TS_State.X;
+        uiY=TS_State.Y;
+    }else
+    {
+        uiX=0;
+        uiY=0;
+    }
+    switch(ucButtonMode)
+    {
+        case 0:
+            if(uiX > 0 && uiX < 79 && uiY > 0 && uiY < 79)
+            {
+                return BUTTON_0;
+            }
+            else if(uiX > 0 && uiX < 79 && uiY > 80 && uiY < 160)
+            {
+                return BUTTON_1;
+            }
+            else if(uiX > 0 && uiX < 79 && uiY > 160 && uiY < 240)
+            {
+                return BUTTON_2;
+            }
+            else if(uiX > 0 && uiX < 79 && uiY > 240 && uiY < 320)
+            {
+                return BUTTON_3;
+            }
+            else{
+                return RELASED;
+            }
+        case 1:
+            if(uiX > 80 && uiX < 160 && uiY > 0 && uiY < 79)
+            {
+                return BUTTON_0;
+            }
+            else if(uiX > 80 && uiX < 160 && uiY > 80 && uiY < 160)
+            {
+                return BUTTON_1;
+            }
+            else if(uiX > 80 && uiX < 160 && uiY > 160 && uiY < 240)
+            {
+                return BUTTON_2;
+            }
+            else if(uiX > 80 && uiX < 160 && uiY > 240 && uiY < 320)
+            {
+                return BUTTON_3;
+            }
+            else{
+                return RELASED;
+            }
+        default:
+            if(uiX > 160 && uiX < 240 && uiY > 0 && uiY < 79)
+            {
+                return BUTTON_0;
+            }
+            else if(uiX > 160 && uiX < 240 && uiY > 80 && uiY < 160)
+            {
+                return BUTTON_1;
+            }
+            else if(uiX > 160 && uiX < 240 && uiY > 160 && uiY < 240)
+            {
+                return BUTTON_2;
+            }
+            else if(uiX > 160 && uiX < 240 && uiY > 240 && uiY < 320)
+            {
+                return BUTTON_3;
+            }
+            else{
+                return RELASED;
+            }
+    }
+}
+
+
+