fixed distance display
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user