Гашение незначащих нулей

bifurkas
Offline
Зарегистрирован: 27.10.2013

Есть семисегментный индикатор на МАХ7219, на который выводится значение переменной следующим образом:

  lc.setDigit(0,7,tentho,false);
  lc.setDigit(0,6,thousands,false);
  lc.setDigit(0,5,hundreds,true);  
  lc.setDigit(0,4,tens,false);

Нужно погасить незначащие нули. Ну т.е. например при значении 12 выводить на индикатор не 0012, а 12. Пробовал так:

  if(tentho != 0) {
  lc.setDigit(0,7,tentho,false);}
  lc.setDigit(0,6,thousands,false);
  lc.setDigit(0,5,hundreds,true);  
  lc.setDigit(0,4,tens,false);

незначащие ноли гасятся, но если не значащий ноль переходит в значащую цифру, а потом обратно в ноль, то на экране так и остаётся последняя цифра.

Подскажите пожалуйста, как правильно погасить эти ноли. Библиотека LedControl.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Я не пользовался этой библиотекой, но в описании пишут, что гасить можно не setDigit, а setChar, выводить пробел вместо незначащих нулей. http://playground.arduino.cc/Main/LedControl

bifurkas
Offline
Зарегистрирован: 27.10.2013

Работает, спасибо!

Штирлиц
Штирлиц аватар
Offline
Зарегистрирован: 13.06.2015

Используй команду setScanLimit(int addr, int limit).