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