1D-Pong game based on a LED strip with 150 LPD6803-controlled pixels. Game keeps score for 'best-of-21' game. Written for KL25Z
GameButton.cpp@26:448ee3b0b481, 2013-09-07 (annotated)
- Committer:
- vsluiter
- Date:
- Sat Sep 07 10:59:26 2013 +0000
- Revision:
- 26:448ee3b0b481
- Parent:
- 21:a554229e884b
Adapted button with software debounce, made left button a bit easier (hitting sooner is OK)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
vsluiter | 21:a554229e884b | 1 | #include "GameButton.h" |
vsluiter | 21:a554229e884b | 2 | |
vsluiter | 21:a554229e884b | 3 | GameButton::GameButton(PinName pin, float time=0.5) |
vsluiter | 21:a554229e884b | 4 | { |
vsluiter | 21:a554229e884b | 5 | pushflag = false; |
vsluiter | 21:a554229e884b | 6 | intpin = new InterruptIn(pin); |
vsluiter | 21:a554229e884b | 7 | (*intpin).mode(PullUp); |
vsluiter | 21:a554229e884b | 8 | (*intpin).fall(this, &GameButton::PushHandler); |
vsluiter | 21:a554229e884b | 9 | m_time = time; |
vsluiter | 21:a554229e884b | 10 | m_timeoutactive = false; |
vsluiter | 26:448ee3b0b481 | 11 | inpin = pin; |
vsluiter | 21:a554229e884b | 12 | //timeout = new Timeout(m_time); |
vsluiter | 21:a554229e884b | 13 | } |
vsluiter | 21:a554229e884b | 14 | |
vsluiter | 21:a554229e884b | 15 | void GameButton::PushHandler(void) |
vsluiter | 21:a554229e884b | 16 | { |
vsluiter | 26:448ee3b0b481 | 17 | DigitalIn input(inpin); |
vsluiter | 26:448ee3b0b481 | 18 | wait_ms(5); |
vsluiter | 26:448ee3b0b481 | 19 | if(!input) |
vsluiter | 26:448ee3b0b481 | 20 | { |
vsluiter | 26:448ee3b0b481 | 21 | pushflag = true; |
vsluiter | 26:448ee3b0b481 | 22 | m_timeoutactive = true; |
vsluiter | 26:448ee3b0b481 | 23 | timeout.attach(this, &GameButton::TimeOutHandler, m_time); |
vsluiter | 26:448ee3b0b481 | 24 | pushhandlercallback(); |
vsluiter | 26:448ee3b0b481 | 25 | } |
vsluiter | 21:a554229e884b | 26 | } |
vsluiter | 21:a554229e884b | 27 | |
vsluiter | 21:a554229e884b | 28 | void GameButton::TimeOutHandler(void) |
vsluiter | 21:a554229e884b | 29 | { |
vsluiter | 21:a554229e884b | 30 | m_timeoutactive = false; |
vsluiter | 21:a554229e884b | 31 | } |
vsluiter | 21:a554229e884b | 32 | |
vsluiter | 21:a554229e884b | 33 | bool GameButton::getTimeoutActive(void) |
vsluiter | 21:a554229e884b | 34 | { |
vsluiter | 21:a554229e884b | 35 | return m_timeoutactive; |
vsluiter | 21:a554229e884b | 36 | } |