wasp: cst816s: Initial PoC driver
This commit is contained in:
parent
1bfe748505
commit
948454a33b
1 changed files with 30 additions and 0 deletions
30
wasp/drivers/cst816s.py
Normal file
30
wasp/drivers/cst816s.py
Normal file
|
@ -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
|
Loading…
Add table
Reference in a new issue