projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altos/telelco: Show box voltage with pad knob instead of firing button
[fw/altos]
/
src
/
drivers
/
ao_pad.c
diff --git
a/src/drivers/ao_pad.c
b/src/drivers/ao_pad.c
index dc2c83fe0cf3c668668dfbf354cbae020d14533f..ffe46c6833723df2279559690e1bec2e7ad6272e 100644
(file)
--- a/
src/drivers/ao_pad.c
+++ b/
src/drivers/ao_pad.c
@@
-29,6
+29,10
@@
static __pdata uint8_t ao_pad_box;
static __xdata uint8_t ao_pad_disabled;
static __pdata uint16_t ao_pad_packet_time;
static __xdata uint8_t ao_pad_disabled;
static __pdata uint16_t ao_pad_packet_time;
+#ifndef AO_PAD_RSSI_MINIMUM
+#define AO_PAD_RSSI_MINIMUM -90
+#endif
+
#define DEBUG 1
#if DEBUG
#define DEBUG 1
#if DEBUG
@@
-36,8
+40,8
@@
static __pdata uint8_t ao_pad_debug;
#define PRINTD(...) (ao_pad_debug ? (printf(__VA_ARGS__), 0) : 0)
#define FLUSHD() (ao_pad_debug ? (flush(), 0) : 0)
#else
#define PRINTD(...) (ao_pad_debug ? (printf(__VA_ARGS__), 0) : 0)
#define FLUSHD() (ao_pad_debug ? (flush(), 0) : 0)
#else
-#define PRINTD(...)
-#define FLUSHD()
+#define PRINTD(...)
+#define FLUSHD()
#endif
static void
#endif
static void
@@
-123,6
+127,8
@@
ao_pad_monitor(void)
#define VOLTS_TO_PYRO(x) ((int16_t) ((x) * 27.0 / 127.0 / 3.3 * 32767.0))
#define VOLTS_TO_PYRO(x) ((int16_t) ((x) * 27.0 / 127.0 / 3.3 * 32767.0))
+ /* convert ADC value to voltage in tenths, then add .2 for the diode drop */
+ query.battery = (packet->adc.batt + 96) / 192 + 2;
cur = 0;
if (pyro > VOLTS_TO_PYRO(10)) {
query.arm_status = AO_PAD_ARM_STATUS_ARMED;
cur = 0;
if (pyro > VOLTS_TO_PYRO(10)) {
query.arm_status = AO_PAD_ARM_STATUS_ARMED;
@@
-138,7
+144,7
@@
ao_pad_monitor(void)
}
if ((ao_time() - ao_pad_packet_time) > AO_SEC_TO_TICKS(2))
cur |= AO_LED_RED;
}
if ((ao_time() - ao_pad_packet_time) > AO_SEC_TO_TICKS(2))
cur |= AO_LED_RED;
- else if (ao_radio_cmac_rssi <
-90
)
+ else if (ao_radio_cmac_rssi <
AO_PAD_RSSI_MINIMUM
)
cur |= AO_LED_AMBER;
else
cur |= AO_LED_GREEN;
cur |= AO_LED_AMBER;
else
cur |= AO_LED_GREEN;
@@
-255,7
+261,7
@@
ao_pad(void)
if (ret != AO_RADIO_CMAC_OK)
continue;
ao_pad_packet_time = ao_time();
if (ret != AO_RADIO_CMAC_OK)
continue;
ao_pad_packet_time = ao_time();
-
+
ao_pad_box = ao_pad_read_box();
PRINTD ("tick %d box %d (me %d) cmd %d channels %02x\n",
ao_pad_box = ao_pad_read_box();
PRINTD ("tick %d box %d (me %d) cmd %d channels %02x\n",