Skip to content

Commit ac1125e

Browse files
committed
Add dot show/hide
1 parent b6765c5 commit ac1125e

File tree

1 file changed

+21
-13
lines changed

1 file changed

+21
-13
lines changed

ports/esp32/boards/KidBright32/modules/display.py

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -308,25 +308,25 @@ def raw(data):
308308
i2c0.writeto(HT16K33_ADDR, buffer)
309309

310310
def show(value):
311+
global displayBuff
311312
value = str(value)
312313
value = bytearray(value)
313314
value = value[-2:] # limit only 2-char
314-
buffer = bytearray(16)
315-
buffer[0] = 0
316-
buffer[1] = 0
317-
buffer[2] = 0
318-
buffer[3] = 0
315+
displayBuff[0] = 0
316+
displayBuff[1] = 0
317+
displayBuff[2] = 0
318+
displayBuff[3] = 0
319319
if (len(value) >= 2):
320320
for i in range(6):
321-
buffer[i + 4] = font_6_8[((value[0] * 6) + i)]
321+
displayBuff[i + 4] = font_6_8[((value[0] * 6) + i)]
322322
for i in range(6):
323-
buffer[i + 4 + 6] = font_6_8[((value[1] * 6) + i)]
323+
displayBuff[i + 4 + 6] = font_6_8[((value[1] * 6) + i)]
324324
else:
325325
for i in range(6):
326-
buffer[i + 4] = 0
326+
displayBuff[i + 4] = 0
327327
for i in range(6):
328-
buffer[i + 4 + 6] = font_6_8[((value[0] * 6) + i)]
329-
raw(buffer)
328+
displayBuff[i + 4 + 6] = font_6_8[((value[0] * 6) + i)]
329+
raw(displayBuff)
330330

331331

332332
def scroll(value, speed=0.06):
@@ -352,11 +352,11 @@ def clear():
352352
displayBuff = bytearray(16)
353353

354354
def show4x8(value):
355+
global displayBuff
355356
value = str(value).upper()
356357
value = bytearray(value)
357358
value = value[:5]
358359
value = value[:(5 if b'.' in value else 4)]
359-
buffer = bytearray(16)
360360
nextIndex = 0
361361
if (len(value) < (5 if b'.' in value else 4)): # fit to right
362362
nextIndex = nextIndex + (((5 if b'.' in value else 4) - len(value)) * 4)
@@ -377,11 +377,11 @@ def show4x8(value):
377377
nextIndex = nextIndex + 4
378378
continue
379379
for i in range(4):
380-
buffer[nextIndex] = font4x8[((charIndex * 4) + i)] | (0x04 if showDotFlag else 0)
380+
displayBuff[nextIndex] = font4x8[((charIndex * 4) + i)] | (0x04 if showDotFlag else 0)
381381
if showDotFlag:
382382
showDotFlag = False
383383
nextIndex = nextIndex + 1
384-
raw(buffer)
384+
raw(displayBuff)
385385

386386
def left(value):
387387
global displayBuff
@@ -471,6 +471,14 @@ def plot(value):
471471
displayBuff[15] = 0
472472
raw(displayBuff)
473473

474+
def dot(x, y, value):
475+
global displayBuff
476+
if value:
477+
displayBuff[x] = displayBuff[x] | (0x80 >> y)
478+
else:
479+
displayBuff[x] = displayBuff[x] & ((0x80 >> y) ^ 0xFF)
480+
raw(displayBuff)
481+
474482
clear()
475483
i2c0.writeto(HT16K33_ADDR, bytes([ HT16K33_OSC_ON ]))
476484
i2c0.writeto(HT16K33_ADDR, bytes([ HT16K33_DIM_SET_8_16 ]))

0 commit comments

Comments
 (0)