summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2012-08-27 13:41:13 -0700
committerKeith Packard <keithp@keithp.com>2012-08-27 13:41:13 -0700
commit708d49e498bbdc59bb5af9bf4ca5fcea5689547a (patch)
tree9cf0cc3eff5e73cdb674285c3af8448c377643a7 /src
parent8bfe8157cd9fe488d1ee961f200ffa0866322f2c (diff)
altos: Test multiple quadrature devices. Export quadrature count.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src')
-rw-r--r--src/drivers/ao_quadrature.c28
-rw-r--r--src/drivers/ao_quadrature.h2
2 files changed, 8 insertions, 22 deletions
diff --git a/src/drivers/ao_quadrature.c b/src/drivers/ao_quadrature.c
index 6a2c1bba..6cc2467a 100644
--- a/src/drivers/ao_quadrature.c
+++ b/src/drivers/ao_quadrature.c
@@ -88,38 +88,22 @@ ao_quadrature_wait(uint8_t q)
static void
ao_quadrature_test(void)
{
-#if 1
+ uint8_t q;
+
+ ao_cmd_decimal();
+ q = ao_cmd_lex_i;
for (;;) {
int32_t c;
flush();
- c = ao_quadrature_wait(0);
+ c = ao_quadrature_wait(q);
printf ("new count %6d\n", c);
if (c == 100)
break;
}
-#endif
-#if 0
- uint8_t a, old_a, b, old_b;
-
- old_a = 2; old_b = 2;
- for (;;) {
- a = ao_gpio_get(AO_QUADRATURE_PORT, AO_QUADRATURE_A, AO_QUADRATURE_A_PIN);
- b = ao_gpio_get(AO_QUADRATURE_PORT, AO_QUADRATURE_B, AO_QUADRATURE_B_PIN);
- if (a != old_a || b != old_b) {
- printf ("A %d B %d count %ld\n", a, b, ao_quadrature_count);
- flush();
- ao_yield();
- old_a = a;
- old_b = b;
- }
- if (ao_stdin_ready)
- break;
- }
-#endif
}
static const struct ao_cmds ao_quadrature_cmds[] = {
- { ao_quadrature_test, "q\0Test quadrature" },
+ { ao_quadrature_test, "q <unit>\0Test quadrature" },
{ 0, NULL }
};
diff --git a/src/drivers/ao_quadrature.h b/src/drivers/ao_quadrature.h
index f0b73b68..d7dda682 100644
--- a/src/drivers/ao_quadrature.h
+++ b/src/drivers/ao_quadrature.h
@@ -18,6 +18,8 @@
#ifndef _AO_QUADRATURE_H_
#define _AO_QUADRATURE_H_
+extern __xdata int32_t ao_quadrature_count[AO_QUADRATURE_COUNT];
+
int32_t
ao_quadrature_wait(uint8_t q);