From 36e894b04ec6e9927740165a5875356b58b9b2ee Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Tue, 8 May 2012 00:53:51 +0200 Subject: digital/io-hub: optional pull-up for contacts --- digital/io-hub/src/common/contact.avr.c | 12 ++++++------ digital/io-hub/src/common/contact.host.c | 2 +- digital/io-hub/src/guybrush/contact_defs.h | 22 +++++++++++----------- digital/io-hub/src/robospierre/contact_defs.h | 16 ++++++++-------- 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 */ -- cgit v1.2.3