summaryrefslogtreecommitdiff
path: root/src/drivers/ao_quadrature.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2012-08-06 22:53:52 -0700
committerKeith Packard <keithp@keithp.com>2012-08-06 22:53:52 -0700
commit46f87373bc8c28442273ee4f8da3a352223150f5 (patch)
tree07f37b802ca3ffd68cbf43d5056aca0c8085caa7 /src/drivers/ao_quadrature.c
parent11046bc89b3ce6386f1005fc8476b08f54d6f5fb (diff)
altos: Add button driver and event queue
With this, a single task can wait for any button or quadrature input device. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/drivers/ao_quadrature.c')
-rw-r--r--src/drivers/ao_quadrature.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/drivers/ao_quadrature.c b/src/drivers/ao_quadrature.c
index aed4999e..6a2c1bba 100644
--- a/src/drivers/ao_quadrature.c
+++ b/src/drivers/ao_quadrature.c
@@ -18,6 +18,12 @@
#include <ao.h>
#include <ao_quadrature.h>
#include <ao_exti.h>
+#if AO_EVENT
+#include <ao_event.h>
+#define ao_quadrature_queue(q) ao_event_put_isr(AO_EVENT_QUADRATURE, q, ao_quadrature_count[q])
+#else
+#define ao_quadrature_queue(q)
+#endif
__xdata int32_t ao_quadrature_count[AO_QUADRATURE_COUNT];
@@ -59,6 +65,7 @@ ao_quadrature_isr(void)
default:
continue;
}
+ ao_quadrature_queue(q);
ao_wakeup(&ao_quadrature_count[q]);
}
}