diff --git a/src/display.c b/src/display.c index 9cd4bc8..5272630 100644 --- a/src/display.c +++ b/src/display.c @@ -67,16 +67,22 @@ void displayInit(void *handleArg) { } static void showNumber(uint8_t n) { - const tPin *pattern = NUMBERS[ALL_ID]; - do { + for (const tPin *pattern = NUMBERS[ALL_ID]; *pattern != PINS_END; pattern++) { gpioSetPin(*pattern, LOW); - pattern++; - } while (*pattern != PINS_END); - pattern = NUMBERS[n]; - do { + } + for (const tPin *pattern = NUMBERS[n]; *pattern != PINS_END; pattern++) { gpioSetPin(*pattern, HIGH); - pattern++; - } while (*pattern != PINS_END); + } +// const tPin *pattern = NUMBERS[ALL_ID]; +// do { +// gpioSetPin(*pattern, LOW); +// pattern++; +// } while (*pattern != PINS_END); +// pattern = NUMBERS[n]; +// do { +// gpioSetPin(*pattern, HIGH); +// pattern++; +// } while (*pattern != PINS_END); } void displaySetValue(uint8_t v) { @@ -85,8 +91,8 @@ void displaySetValue(uint8_t v) { b = a / 100; c = (a - b * 100) / 10; d = a - c * 10 - b * 100; - digitValues[2] = (uint8_t)b; - digitValues[1] = (uint8_t)c; + digitValues[2] = (b == 0) ? EMPTY_ID : (uint8_t)b; + digitValues[1] = (c == 0) ? EMPTY_ID : (uint8_t)c; digitValues[0] = (uint8_t)d; } @@ -98,14 +104,16 @@ void displayExec(void *handleArg) { activeDigit = 0; } - const tPin *digit = DIGITS; - do { + for (const tPin *digit = DIGITS; *digit != PINS_END; digit++) { gpioSetPin(*digit, HIGH); - digit++; - } while (*digit != PINS_END); + } +// const tPin *digit = DIGITS; +// do { +// gpioSetPin(*digit, HIGH); +// digit++; +// } while (*digit != PINS_END); - digit = DIGITS + activeDigit; - gpioSetPin(*digit, LOW); + gpioSetPin(DIGITS[activeDigit], LOW); showNumber(digitValues[activeDigit]); }