diff options
| -rw-r--r-- | wasp/drivers/cst816s.py | 30 |
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 |
