Übungen zur Bitmanipulation

Dependencies:   mbed

Revision:
1:1b60b274d6fc
Parent:
0:b3ff6214f9c0
Child:
2:488fedfa3e4e
diff -r b3ff6214f9c0 -r 1b60b274d6fc main.cpp
--- a/main.cpp	Fri Jan 10 10:08:55 2020 +0000
+++ b/main.cpp	Fri Jan 10 10:46:56 2020 +0000
@@ -13,10 +13,19 @@
 
 BusOut Leds(D11, D10, D9, D6, D5, D4, D3, D2);
 BusIn Btn(A0, A1, A2, A3, A4);
+Timer T1;
 
 int main() {
     uint8_t maskLsbMsb = 0x81;
+    T1.start();
+    unsigned long actualTime;
+    unsigned long lastTrigger;
+    uint8_t ButtonState;
+    uint8_t LastButtonState;
+    
     while(1) {
+        ButtonState = Btn.read();
+        actualTime = T1.read_ms();
         // Sets LSB and MSB
         if(Btn == 0x01) // Button A0
         {
@@ -28,9 +37,13 @@
             Leds = Leds & !maskLsbMsb;
         }
         // Toggles LSB and MSB
-        if(Btn == 0x04) // Button A2
+        // Debouncing the button
+        if(Btn == 0x04 && ButtonState ^ LastButtonState && (actualTime - lastTrigger) > 500 ) // Button A2
         {
+            //T1.reset();
             Leds = Leds ^ maskLsbMsb;
+            lastTrigger = T1.read_ms();
         }
+        LastButtonState = ButtonState;
     }
 }