Skip to content

Commit 7f70b67

Browse files
gt911: add interrupt config mode
1 parent 420588c commit 7f70b67

1 file changed

Lines changed: 8 additions & 5 deletions

File tree

  • internal_filesystem/lib/mpos/indev

internal_filesystem/lib/mpos/indev/gt911.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040

4141
_ADDR2 = const(0x14)
4242

43+
_USE_INTERRUPTS = False # Interrupt handler based? Or just polling?
4344

4445
class GT911(pointer_framework.PointerDriver):
4546

@@ -88,8 +89,10 @@ def __init__(
8889
if isinstance(reset_pin, int):
8990
reset_pin = machine.Pin(reset_pin, machine.Pin.OUT)
9091

91-
if isinstance(interrupt_pin, int):
92+
if isinstance(interrupt_pin, int) and _USE_INTERRUPTS:
9293
interrupt_pin = machine.Pin(interrupt_pin, machine.Pin.IN)
94+
else:
95+
interrupt_pin = machine.Pin(interrupt_pin, machine.Pin.OUT)
9396

9497
self._reset_pin = reset_pin
9598
self._interrupt_pin = interrupt_pin
@@ -119,7 +122,7 @@ def hw_reset(self):
119122
if self._interrupt_pin:
120123
self._interrupt_pin(0)
121124
time.sleep_ms(50) # NOQA
122-
if self._interrupt_pin:
125+
if self._interrupt_pin and _USE_INTERRUPTS:
123126
self._interrupt_pin.init(mode=self._interrupt_pin.IN)
124127
time.sleep_ms(50) # NOQA
125128

@@ -150,7 +153,7 @@ def hw_reset(self):
150153
print(f'Touch resolution: width={x}, height={y}')
151154

152155
# Set up interrupt handler if interrupt pin is available
153-
if self._interrupt_pin:
156+
if self._interrupt_pin and _USE_INTERRUPTS:
154157
self._interrupt_pin.irq(trigger=machine.Pin.IRQ_FALLING, handler=self._interrupt_handler)
155158
# Setting _MODULE_SWITCH_1 will "hang" the touch input after a second or 2 of initial swipe
156159
#self._write_reg(_MODULE_SWITCH_1, _CMD_INT_FALLING_EDGE) # stops working
@@ -181,11 +184,11 @@ def firmware_config(self):
181184

182185
def _get_coords(self):
183186
# If interrupt pin is available, only fetch data when interrupt flag is set
184-
if self._interrupt_pin and not self._interrupt_flag:
187+
if self._interrupt_pin and not self._interrupt_flag and _USE_INTERRUPTS:
185188
return self.__last_state, self.__x, self.__y
186189

187190
# Clear interrupt flag before reading
188-
if self._interrupt_pin:
191+
if self._interrupt_pin and _USE_INTERRUPTS:
189192
self._interrupt_flag = False
190193
#self._write_reg(_MODULE_SWITCH_1, _CMD_INT_FALLING_EDGE)
191194
#print("[GT911] Interrupt-triggered read")

0 commit comments

Comments
 (0)