summaryrefslogtreecommitdiff
path: root/wasp/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'wasp/drivers')
-rw-r--r--wasp/drivers/cst816s.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/wasp/drivers/cst816s.py b/wasp/drivers/cst816s.py
new file mode 100644
index 0000000..5157650
--- /dev/null
+++ b/wasp/drivers/cst816s.py
@@ -0,0 +1,30 @@
+"""Hynitron CST816S touch contoller driver for MicroPython."""
+
+import watch
+
+class CST816S:
+ """Hynitron CST816S I2C touch controller driver."""
+
+ def __init__(self):
+ self.dbuf = bytearray(6)
+ pass
+
+ def get_event(self, queue):
+ """Receive a touch event.
+
+ Check for a pending touch event and, if an event is pending,
+ prepare it ready to go in the event queue.
+
+ :return: True if an event is received, False otherwise.
+ """
+ dbuf = self.dbuf
+
+ try:
+ watch.i2c.readfrom_mem_into(21, 1, dbuf)
+ except OSError:
+ return False
+
+ queue[0] = dbuf[0]
+ queue[1] = ((dbuf[2] & 0xf) << 8) + dbuf[3]
+ queue[2] = ((dbuf[4] & 0xf) << 8) + dbuf[5]
+ return True