Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion adafruit_trellis.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,8 @@ def __setitem__(self, x, value):
led = ledLUT[x % 16] >> 4
mask = 1 << (ledLUT[x % 16] & 0x0f)
if value:
self._parent._led_buffer[x // 16][(led * 2) + 1] |= mask
if mask < 256:
self._parent._led_buffer[x // 16][(led * 2) + 1] |= mask
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe this will fix it because you know above that only one bit is set. However, its probably simpler this way:

self._parent._led_buffer[x // 16][(led * 2) + 1] |= (mask & 0xff)

This only allows bits in the first byte (0xff) to be preserved. The next line below drops those bits by shifting them off the right side.

self._parent._led_buffer[x // 16][(led * 2) + 2] |= mask >> 8
elif not value:
self._parent._led_buffer[x // 16][(led * 2) + 1] &= ~mask
Expand Down