David's dead reckoning code for the LVBots competition on March 6th. Uses the mbed LPC1768, DRV8835, QTR-3RC, and two DC motors with encoders.
Dependencies: PololuEncoder Pacer mbed GeneralDebouncer
buttons.cpp@33:58a0ab6e9ad2, 2014-03-05 (annotated)
- Committer:
- DavidEGrayson
- Date:
- Wed Mar 05 02:50:09 2014 +0000
- Revision:
- 33:58a0ab6e9ad2
- Parent:
- 17:2df9861f53ee
Bunch of stuff. Then reduced drivingSpeed to 400.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
DavidEGrayson | 11:bd14d512340a | 1 | #include <mbed.h> |
DavidEGrayson | 11:bd14d512340a | 2 | #include "buttons.h" |
DavidEGrayson | 16:8eaa5bc2bdb1 | 3 | #include "GeneralDebouncer.h" |
DavidEGrayson | 16:8eaa5bc2bdb1 | 4 | |
DavidEGrayson | 16:8eaa5bc2bdb1 | 5 | #define BUTTON_DEBOUNCE_TIME 20000 |
DavidEGrayson | 11:bd14d512340a | 6 | |
DavidEGrayson | 11:bd14d512340a | 7 | DigitalIn button1(p13); |
DavidEGrayson | 11:bd14d512340a | 8 | |
DavidEGrayson | 16:8eaa5bc2bdb1 | 9 | GeneralDebouncer button1Debouncer(5000); |
DavidEGrayson | 16:8eaa5bc2bdb1 | 10 | |
DavidEGrayson | 11:bd14d512340a | 11 | void buttonsInit() |
DavidEGrayson | 11:bd14d512340a | 12 | { |
DavidEGrayson | 11:bd14d512340a | 13 | button1.mode(PullUp); |
DavidEGrayson | 11:bd14d512340a | 14 | } |
DavidEGrayson | 11:bd14d512340a | 15 | |
DavidEGrayson | 11:bd14d512340a | 16 | bool button1IsPressed() |
DavidEGrayson | 11:bd14d512340a | 17 | { |
DavidEGrayson | 11:bd14d512340a | 18 | return button1.read() == 0; |
DavidEGrayson | 16:8eaa5bc2bdb1 | 19 | } |
DavidEGrayson | 16:8eaa5bc2bdb1 | 20 | |
DavidEGrayson | 16:8eaa5bc2bdb1 | 21 | void button1Montior() |
DavidEGrayson | 16:8eaa5bc2bdb1 | 22 | { |
DavidEGrayson | 16:8eaa5bc2bdb1 | 23 | button1Debouncer.update(button1IsPressed()); |
DavidEGrayson | 16:8eaa5bc2bdb1 | 24 | } |
DavidEGrayson | 16:8eaa5bc2bdb1 | 25 | |
DavidEGrayson | 16:8eaa5bc2bdb1 | 26 | bool button1DefinitelyInState(bool state) |
DavidEGrayson | 16:8eaa5bc2bdb1 | 27 | { |
DavidEGrayson | 16:8eaa5bc2bdb1 | 28 | button1Montior(); |
DavidEGrayson | 16:8eaa5bc2bdb1 | 29 | return button1Debouncer.getState() == state && |
DavidEGrayson | 17:2df9861f53ee | 30 | button1Debouncer.getTimeInCurrentStateMicroseconds() > BUTTON_DEBOUNCE_TIME; |
DavidEGrayson | 16:8eaa5bc2bdb1 | 31 | } |
DavidEGrayson | 16:8eaa5bc2bdb1 | 32 | |
DavidEGrayson | 16:8eaa5bc2bdb1 | 33 | bool button1DefinitelyPressed() |
DavidEGrayson | 16:8eaa5bc2bdb1 | 34 | { |
DavidEGrayson | 16:8eaa5bc2bdb1 | 35 | return button1DefinitelyInState(true); |
DavidEGrayson | 16:8eaa5bc2bdb1 | 36 | } |
DavidEGrayson | 16:8eaa5bc2bdb1 | 37 | |
DavidEGrayson | 16:8eaa5bc2bdb1 | 38 | bool button1DefinitelyReleased() |
DavidEGrayson | 16:8eaa5bc2bdb1 | 39 | { |
DavidEGrayson | 16:8eaa5bc2bdb1 | 40 | return button1DefinitelyInState(false); |
DavidEGrayson | 16:8eaa5bc2bdb1 | 41 | } |
DavidEGrayson | 16:8eaa5bc2bdb1 | 42 | |
DavidEGrayson | 16:8eaa5bc2bdb1 | 43 |