aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarti Bolivar <mbolivar@leaflabs.com>2012-06-05 18:13:20 -0400
committerMarti Bolivar <mbolivar@leaflabs.com>2012-06-07 03:38:30 -0400
commit9a081c2d523252370ebcd100de1f3c57759ebcf5 (patch)
tree9d2b6c60e4d0a21414c2f6ac558f2571a357d4c9
parent826681214931cd53b607320a620428fb6e9d6bf1 (diff)
isButtonPressed(): Take a pin and pressedLevel argument.
This allows dealing with push-buttons on pins other than BOARD_BUTTON_PIN. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
-rw-r--r--wirish/include/wirish/io.h3
-rw-r--r--wirish/wirish_digital.cpp6
2 files changed, 5 insertions, 4 deletions
diff --git a/wirish/include/wirish/io.h b/wirish/include/wirish/io.h
index b5fe3a8..08bbc06 100644
--- a/wirish/include/wirish/io.h
+++ b/wirish/include/wirish/io.h
@@ -181,7 +181,8 @@ static inline void toggleLED() {
*
* @see pinMode()
*/
-uint8 isButtonPressed();
+uint8 isButtonPressed(uint8 pin=BOARD_BUTTON_PIN,
+ uint32 pressedLevel=BOARD_BUTTON_PRESSED_LEVEL);
/**
* Wait until the button is pressed and released, timing out if no
diff --git a/wirish/wirish_digital.cpp b/wirish/wirish_digital.cpp
index 05ce756..2711a33 100644
--- a/wirish/wirish_digital.cpp
+++ b/wirish/wirish_digital.cpp
@@ -64,10 +64,10 @@ void togglePin(uint8 pin) {
#define BUTTON_DEBOUNCE_DELAY 1
-uint8 isButtonPressed() {
- if (digitalRead(BOARD_BUTTON_PIN) == BOARD_BUTTON_PRESSED_LEVEL) {
+uint8 isButtonPressed(uint8 pin, uint32 pressedLevel) {
+ if (digitalRead(pin) == pressedLevel) {
delay(BUTTON_DEBOUNCE_DELAY);
- while (digitalRead(BOARD_BUTTON_PIN) == BOARD_BUTTON_PRESSED_LEVEL)
+ while (digitalRead(pin) == pressedLevel)
;
return true;
}