А тот что выше, можно все-же оставить как вариант. Вот буфер только увеличить Вы правы, на случай возможного переполнения.
Код: Выделить всё
unsigned char buffer[16];
...
val = 999;
sprintf(buffer,"%3d",val); // Заполняем буфер результатом
...
LCDstring(buffer,3); - выводим в 3 рабочие знакоместа, 0 отсекаем
А так то все скромненько работает, без замеченных косячков пока
Но есть еще один момент. Для отображения отрицательных чисел нужно резервировать дополнительное знакоместо, под знак "-". Иначе диапазон отображения будет "-99..999". Это придется учитывать.