Skip to content

Commit 10e5ff0

Browse files
committed
Fix printing strings with colons/decimals
Fixes #23
1 parent aeed429 commit 10e5ff0

File tree

1 file changed

+5
-8
lines changed

1 file changed

+5
-8
lines changed

src/SparkFun_Alphanumeric_Display.cpp

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -761,22 +761,18 @@ size_t HT16K33::write(uint8_t b)
761761
*/
762762
size_t HT16K33::write(const uint8_t *buffer, size_t size)
763763
{
764-
// Do not exceed number of digits available
765-
if(size > 4 * numberOfDisplays)
766-
size = 4 * numberOfDisplays;
767-
768-
size_t n = size;
769764
uint8_t buff;
770765

771766
// Clear the displayRAM array
772767
for (uint8_t i = 0; i < 16 * numberOfDisplays; i++)
773768
displayRAM[i] = 0;
774769

775770
digitPosition = 0;
771+
size_t stringIndex = 0;
776772

777-
while (size--)
773+
while (stringIndex < size && digitPosition < (4 * numberOfDisplays))
778774
{
779-
buff = *buffer++;
775+
buff = buffer[stringIndex];
780776
// For special characters like '.' or ':', do not increment the digitPosition
781777
if (buff == '.')
782778
printChar('.', 0);
@@ -789,11 +785,12 @@ size_t HT16K33::write(const uint8_t *buffer, size_t size)
789785

790786
digitPosition++;
791787
}
788+
stringIndex++;
792789
}
793790

794791
updateDisplay(); // Send RAM buffer over I2C bus
795792

796-
return n;
793+
return stringIndex;
797794
}
798795

799796
/*

0 commit comments

Comments
 (0)