fixed distance display

This commit is contained in:
2026-01-26 16:56:02 +03:00
parent aef813e29a
commit 60b9b3b508

View File

@@ -2373,8 +2373,10 @@ void displayDistanceOnModules(float distance, int startModule) {
int digitCount = 0;
if (meters == 0) {
// Show "00" for zero
digits[0] = 0;
digitCount = 1;
digits[1] = 0;
digitCount = 2;
} else {
int temp = meters;
while (temp > 0 && digitCount < availableModules) {
@@ -2382,6 +2384,11 @@ void displayDistanceOnModules(float distance, int startModule) {
temp /= 10;
digitCount++;
}
// Ensure minimum 2 digits (show leading zero for values < 10)
if (digitCount == 1 && availableModules >= 2) {
digits[1] = 0; // Leading zero
digitCount = 2;
}
}
// Cache last displayed digits per module
@@ -2414,8 +2421,9 @@ void displayDistanceOnModules(float distance, int startModule) {
}
if (needsUpdate) {
// Clear only the modules we'll actually use (prevents flashing)
for (int i = 0; i < digitCount && (startModule + i) < MATRIX_MODULES; i++) {
// Clear modules - include any extra modules from previous larger digit count
int modulesToClear = (digitCount > lastDigitCount) ? digitCount : lastDigitCount;
for (int i = 0; i < modulesToClear && (startModule + i) < MATRIX_MODULES; i++) {
matrix.clearDisplay(startModule + i);
}