summaryrefslogtreecommitdiff
path: root/digital/io-hub/src
diff options
context:
space:
mode:
authorNicolas Schodet2012-05-08 00:53:51 +0200
committerNicolas Schodet2012-05-08 00:53:51 +0200
commit36e894b04ec6e9927740165a5875356b58b9b2ee (patch)
tree26ffe13e80ae54e79df0090fcf29d3adf590f921 /digital/io-hub/src
parent631474ab8777ed66fb0d8b827c4c1fce5c0a9a29 (diff)
digital/io-hub: optional pull-up for contacts
Diffstat (limited to 'digital/io-hub/src')
-rw-r--r--digital/io-hub/src/common/contact.avr.c12
-rw-r--r--digital/io-hub/src/common/contact.host.c2
-rw-r--r--digital/io-hub/src/guybrush/contact_defs.h22
-rw-r--r--digital/io-hub/src/robospierre/contact_defs.h16
4 files changed, 26 insertions, 26 deletions
diff --git a/digital/io-hub/src/common/contact.avr.c b/digital/io-hub/src/common/contact.avr.c
index d6692566..f35f093a 100644
--- a/digital/io-hub/src/common/contact.avr.c
+++ b/digital/io-hub/src/common/contact.avr.c
@@ -45,9 +45,9 @@ void
contact_init (void)
{
/* Pull-up. */
-#define CONTACT(io) IO_SET_ (io);
- CONTACT (CONTACT_COLOR);
- CONTACT (CONTACT_JACK);
+#define CONTACT(io, pullup) if (pullup) IO_SET_ (io);
+ CONTACT (CONTACT_COLOR, 1);
+ CONTACT (CONTACT_JACK, 1);
CONTACT_LIST
#undef CONTACT
/* Default to jack out. */
@@ -86,12 +86,12 @@ uint32_t
contact_all (void)
{
uint32_t contacts = 0, bit = 1;
-#define CONTACT(io) do { \
+#define CONTACT(io, pullup) do { \
contacts |= (IO_GET_ (io) ? bit : 0); \
bit <<= 1; \
} while (0);
- CONTACT (CONTACT_COLOR);
- CONTACT (CONTACT_JACK);
+ CONTACT (CONTACT_COLOR, 1);
+ CONTACT (CONTACT_JACK, 1);
CONTACT_LIST
#undef CONTACT
return contacts;
diff --git a/digital/io-hub/src/common/contact.host.c b/digital/io-hub/src/common/contact.host.c
index cc302f46..1692ec65 100644
--- a/digital/io-hub/src/common/contact.host.c
+++ b/digital/io-hub/src/common/contact.host.c
@@ -52,7 +52,7 @@ contact_handle (void *user, mex_msg_t *msg)
ctx.color_state = (contacts & 1) ? TEAM_COLOR_LEFT : TEAM_COLOR_RIGHT;
ctx.jack_state = (contacts & 2) ? 1 : 0;
contacts >>= 2;
-#define CONTACT(io) do { \
+#define CONTACT(io, pullup) do { \
if (contacts & 1) \
IO_PIN_ (io) |= IO_BV_ (io); \
else \
diff --git a/digital/io-hub/src/guybrush/contact_defs.h b/digital/io-hub/src/guybrush/contact_defs.h
index 9d113214..2b1385f3 100644
--- a/digital/io-hub/src/guybrush/contact_defs.h
+++ b/digital/io-hub/src/guybrush/contact_defs.h
@@ -40,16 +40,16 @@
#define CONTACT_TOTEM E, 7
#define CONTACT_LIST \
- CONTACT (CONTACT_STRAT) \
- CONTACT (CONTACT_LOWER_CLAMP_SENSOR_1) \
- CONTACT (CONTACT_LOWER_CLAMP_SENSOR_2) \
- CONTACT (CONTACT_LOWER_CLAMP_SENSOR_3) \
- CONTACT (CONTACT_LOWER_CLAMP_SENSOR_4) \
- CONTACT (CONTACT_UPPER_CLAMP_DOWN) \
- CONTACT (CONTACT_UPPER_CLAMP_UP) \
- CONTACT (CONTACT_DOOR_OPEN) \
- CONTACT (CONTACT_DOOR_CLOSE) \
- CONTACT (CONTACT_GOLD_BAR) \
- CONTACT (CONTACT_TOTEM)
+ CONTACT (CONTACT_STRAT, 1) \
+ CONTACT (CONTACT_LOWER_CLAMP_SENSOR_1, 0) \
+ CONTACT (CONTACT_LOWER_CLAMP_SENSOR_2, 0) \
+ CONTACT (CONTACT_LOWER_CLAMP_SENSOR_3, 0) \
+ CONTACT (CONTACT_LOWER_CLAMP_SENSOR_4, 0) \
+ CONTACT (CONTACT_UPPER_CLAMP_DOWN, 1) \
+ CONTACT (CONTACT_UPPER_CLAMP_UP, 1) \
+ CONTACT (CONTACT_DOOR_OPEN, 1) \
+ CONTACT (CONTACT_DOOR_CLOSE, 1) \
+ CONTACT (CONTACT_GOLD_BAR, 1) \
+ CONTACT (CONTACT_TOTEM, 1)
#endif /* contact_defs_h */
diff --git a/digital/io-hub/src/robospierre/contact_defs.h b/digital/io-hub/src/robospierre/contact_defs.h
index 132ec050..bf12ee73 100644
--- a/digital/io-hub/src/robospierre/contact_defs.h
+++ b/digital/io-hub/src/robospierre/contact_defs.h
@@ -37,13 +37,13 @@
#define CONTACT_SIDE E, 7
#define CONTACT_LIST \
- CONTACT (CONTACT_FRONT_BOTTOM) \
- CONTACT (CONTACT_FRONT_MIDDLE) \
- CONTACT (CONTACT_FRONT_TOP) \
- CONTACT (CONTACT_BACK_BOTTOM) \
- CONTACT (CONTACT_BACK_MIDDLE) \
- CONTACT (CONTACT_BACK_TOP) \
- CONTACT (CONTACT_SIDE) \
- CONTACT (CONTACT_STRAT)
+ CONTACT (CONTACT_FRONT_BOTTOM, 1) \
+ CONTACT (CONTACT_FRONT_MIDDLE, 1) \
+ CONTACT (CONTACT_FRONT_TOP, 1) \
+ CONTACT (CONTACT_BACK_BOTTOM, 1) \
+ CONTACT (CONTACT_BACK_MIDDLE, 1) \
+ CONTACT (CONTACT_BACK_TOP, 1) \
+ CONTACT (CONTACT_SIDE, 1) \
+ CONTACT (CONTACT_STRAT, 1)
#endif /* contact_defs_h */