aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPerry Hung <iperry@alum.mit.edu>2010-03-22 23:52:08 -0400
committerPerry Hung <iperry@alum.mit.edu>2010-03-22 23:52:08 -0400
commit48be688f451e81d2a81c76a85dadf18093e672ab (patch)
treefb3321a04f2820926f91971cf1536d2cb8e63e7d
parent96ce013f875c918a70644ad23a03f0450a7f6848 (diff)
downloadlibrambutan-48be688f451e81d2a81c76a85dadf18093e672ab.tar.gz
librambutan-48be688f451e81d2a81c76a85dadf18093e672ab.zip
Added open-drain output and analog-input modes
-rw-r--r--src/wiring/io.h18
-rw-r--r--src/wiring/wiring_digital.c5
2 files changed, 7 insertions, 16 deletions
diff --git a/src/wiring/io.h b/src/wiring/io.h
index 9c226c5..a313b2b 100644
--- a/src/wiring/io.h
+++ b/src/wiring/io.h
@@ -94,29 +94,15 @@ extern "C"{
typedef enum WiringPinMode {
OUTPUT,
+ OUTPUT_OPEN_DRAIN,
INPUT,
+ INPUT_ANALOG,
INPUT_PULLUP,
INPUT_PULLDOWN,
INPUT_FLOATING,
PWM
} WiringPinMode;
-#if 0
-typedef enum PinMode {
- INPUT_FLOATING,
- INPUT_ANALOG,
- INPUT_DIGITAL,
- INPUT_PULLDOWN,
- INPUT_PULLUP,
- INPUT,
- OUTPUT,
- PWM,
- SERIAL,
- SPI,
- I2C,
-} PinMode;
-#endif
-
/* Set pin to mode
* pinMode(pin, mode):
* pin -> {0-38, D0-D39, A0-16}
diff --git a/src/wiring/wiring_digital.c b/src/wiring/wiring_digital.c
index 71be17b..b1be9a5 100644
--- a/src/wiring/wiring_digital.c
+++ b/src/wiring/wiring_digital.c
@@ -97,10 +97,15 @@ void pinMode(uint8_t pin, WiringPinMode mode) {
case OUTPUT:
outputMode = GPIO_MODE_OUTPUT_PP;
break;
+ case OUTPUT_OPEN_DRAIN:
+ outputMode = GPIO_MODE_OUTPUT_OD;
+ break;
case INPUT:
case INPUT_FLOATING:
outputMode = GPIO_MODE_INPUT_FLOATING;
break;
+ case INPUT_ANALOG:
+ outputMode = GPIO_MODE_INPUT_ANALOG;
case INPUT_PULLUP:
outputMode = GPIO_MODE_INPUT_PU;
break;