Sw2 key press counter and display to tft

Dependencies:   mbed PinDetect

Revision:
2:f7100947de37
Parent:
1:402b32a1025f
--- a/main.cpp	Tue Nov 19 10:04:48 2019 +0000
+++ b/main.cpp	Tue Nov 26 09:14:00 2019 +0000
@@ -1,8 +1,19 @@
-/* Hello World! for the TextLCD Enhanced Library*/
+/* Hello World! for the Emwin TFT Library */
 
 #include "mbed.h"
 #include "GUI.h"
 #include "cy8ckit_028_tft.h"
+#include "PinDetect.h"
+
+PinDetect pb1(SWITCH2);
+volatile bool keypressed = true;
+
+// Callback routine is interrupt activated by a debounced pb1 hit
+void pb1_hit_callback (void)
+{
+    keypressed = true;
+}
+
 
 void Display_Init(void)
 {
@@ -20,17 +31,33 @@
 
 int main()
 {
+    uint8 counter = 0;
     /* Initialise EmWin driver*/
     GUI_Init();
 
     /* Initialise display */
     Display_Init();
+    pb1.mode(PullUp);
+    // Delay for initial pullup to take effect
+    ThisThread::sleep_for(10);
+    // Setup Interrupt callback functions for a pb hit
+    pb1.attach_deasserted(&pb1_hit_callback);
+
+    // Start sampling pb inputs using interrupts
+    pb1.setSampleFrequency();
 
 
     GUI_SetFont(GUI_FONT_8X16X2X2);
-        GUI_SetTextAlign(GUI_TA_HCENTER);
-        GUI_DispStringAt("Hello World!", 160, 200);
-
+    GUI_SetTextAlign(GUI_TA_HCENTER);
+    GUI_DispStringAt("Hello World!", 160, 200);
+    while(1) {
+        if(keypressed == true) {
+            GUI_SetTextAlign(GUI_TA_HCENTER);
+            GUI_DispBinAt(counter++, 160, 100, 8);
+            ThisThread::sleep_for(100);
+            keypressed = false;
+        }
+    }
 }