Stefan Simbürger
/
SetDelTogBits
Übungen zur Bitmanipulation
Diff: main.cpp
- Revision:
- 1:1b60b274d6fc
- Parent:
- 0:b3ff6214f9c0
- Child:
- 2:488fedfa3e4e
--- 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; } }