Мне нужно разбить число на цифры, чтобы отобразить его на ЖК-дисплее. Сейчас я использую следующий метод:
pos = 7;
do
{
LCD_Display(pos, val % 10);
val /= 10;
pos--;
} while (pos >= 0 && val);
Проблема с этим методом заключается в том, что деление и по модулю операции на микроконтроллере MSP430 выполняются очень медленно. Есть ли альтернатива этому методу, которая либо не предполагает деления, либо сокращает количество операций?
Примечание: я не могу использовать какие-либо библиотечные функции, такие как itoa
. Библиотеки большие, а сами функции довольно требовательны к ресурсам (как с точки зрения количества циклов, так и использования ОЗУ).