Skip to content

Commit 84f2130

Browse files
committed
lock SPI only when writing
1 parent 163f2f1 commit 84f2130

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

adafruit_dotstar.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,9 @@ def __init__(
108108
self._spi = None
109109
try:
110110
self._spi = busio.SPI(clock, MOSI=data)
111-
while not self._spi.try_lock():
112-
pass
111+
self._spi.try_lock()
113112
self._spi.configure(baudrate=baudrate)
113+
self._spi.unlock()
114114

115115
except (NotImplementedError, ValueError):
116116
self.dpin = digitalio.DigitalInOut(data)
@@ -145,7 +145,6 @@ def deinit(self) -> None:
145145
self.fill(0)
146146
self.show()
147147
if self._spi:
148-
self._spi.unlock()
149148
self._spi.deinit()
150149
else:
151150
self.dpin.deinit()
@@ -174,7 +173,9 @@ def n(self) -> int:
174173

175174
def _transmit(self, buffer: ReadableBuffer) -> None:
176175
if self._spi:
176+
self._spi.try_lock()
177177
self._spi.write(buffer)
178+
self._spi.unlock()
178179
else:
179180
self._ds_writebytes(buffer)
180181

0 commit comments

Comments
 (0)