altos: Add debug command for 74hc597 driver
authorKeith Packard <keithp@keithp.com>
Sun, 26 Aug 2012 16:45:03 +0000 (09:45 -0700)
committerKeith Packard <keithp@keithp.com>
Sun, 26 Aug 2012 16:45:03 +0000 (09:45 -0700)
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>
src/drivers/ao_74hc497.c

index 93c544c34cab9e0d03c92a2d567b2ad9640e4511..4c13ee71e1a534c86cfe6ccf99ca0d273143799f 100644 (file)
@@ -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]);
 }