summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2012-08-26 09:45:03 -0700
committerKeith Packard <keithp@keithp.com>2012-08-26 09:45:03 -0700
commitea4db73328e865fd658b573da256ca0004c69c61 (patch)
tree2889e3637b2c172f83ac27bd0637d18b414539af
parent89f1a685a02c7808cf03853aa9a5ee50c6baf49e (diff)
altos: Add debug command for 74hc597 driver
This dumps the current state of the 74hc597 chip. Note that this shows that the 74hc597 driver doesn't work, and that the circuit used in telefire v0.1 can't work. Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--src/drivers/ao_74hc497.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/drivers/ao_74hc497.c b/src/drivers/ao_74hc497.c
index 93c544c3..4c13ee71 100644
--- a/src/drivers/ao_74hc497.c
+++ b/src/drivers/ao_74hc497.c
@@ -28,13 +28,28 @@ ao_74hc497_read(void)
{
static __xdata state;
ao_spi_get_bit(AO_74HC497_CS_PORT, AO_74HC497_CS_PIN, AO_74HC497_CS, AO_74HC497_SPI_BUS, AO_SPI_SPEED_FAST);
- ao_spi_send(&state, 1, AO_74HC497_SPI_BUS);
+ ao_spi_recv(&state, 1, AO_74HC497_SPI_BUS);
ao_spi_put_bit(AO_74HC497_CS_PORT, AO_74HC497_CS_PIN, AO_74HC497_CS, AO_74HC497_SPI_BUS);
return state;
}
+static void
+ao_74hc497_cmd(void)
+{
+ uint8_t v;
+
+ v = ao_74hc497_read();
+ printf ("Switches: 0x%02x\n", v);
+}
+
+static const struct ao_cmds ao_74hc497_cmds[] = {
+ { ao_74hc497_cmd, "L\0Show 74hc497" },
+ { 0, NULL }
+};
+
void
ao_74hc497_init(void)
{
ao_enable_output(AO_74HC497_CS_PORT, AO_74HC497_CS_PIN, AO_74HC497_CS, 1);
+ ao_cmd_register(&ao_74hc497_cmds[0]);
}