на msp430 поочередное вычитание степеней 10 будет быстрее чем деление на 10.
Код
void putd32 (u32 data){
const u32 pow10Table[] = {1000000000ul, 100000000ul, 10000000ul, 1000000ul, 100000ul, 10000ul, 1000ul, 100ul, 10ul, 1ul};
if(data == 0) { putc('0'); return; }
u8 i = 0;
u8 add0 = 0;
do {
u32 pow10 = pow10Table[i++];
u8 digit = 0;
while(data >= pow10) {
digit++;
data -= pow10;
}
if (digit) {add0 = 1; putc(digit + '0');}
else if (add0) putc('0');
} while(i < 10);
}