Jan Waclawek
/
Simon
would be Simon game, as a demonstrator for buttons debouncing and \"collecting\" ---
main.cpp
- Committer:
- wek
- Date:
- 2010-12-13
- Revision:
- 1:3acf57259c58
- Parent:
- 0:408abc8a3d3e
- Child:
- 2:fe450a70f8a4
File content as of revision 1:3acf57259c58:
#include "mbed.h" #include "DebounceIn_.h" #include <stdbool.h> DebounceIn button1(p15); DebounceIn button2(p16); DebounceIn button3(p17); DebounceIn button4(p21); class CSimonButton { _Bool pressed; int button; public: CSimonButton(); _Bool IsPressed(void); int GetButton(void) {return button;}; void Handle(void); }; CSimonButton::CSimonButton() { button1.mode(PullUp); button2.mode(PullUp); button3.mode(PullUp); button4.mode(PullUp); pressed = 0; } _Bool CSimonButton::IsPressed(void) { _Bool tmp; tmp = pressed; pressed = 0; return tmp; } void CSimonButton::Handle(void) { if (button1.pressed) { button1.pressed = 0; pressed = 1; button = 1; } if (button2.pressed) { button2.pressed = 0; pressed = 1; button = 2; } if (button3.pressed) { button3.pressed = 0; pressed = 1; button = 3; } if (button4.pressed) { button4.pressed = 0; pressed = 1; button = 4; } } uint8_t ledState; BusOut leds(LED1, LED2, LED3, LED4); int main() { CSimonButton simonButton; while (1) { leds.write(ledState); simonButton.Handle(); if (simonButton.IsPressed()) { ledState ^= 1 << (simonButton.GetButton() - 1); } } } /* int main() { while(1) { myled = 1; wait(0.2); myled = 0; wait(0.2); } } */