Как вариант:
Код
...
#define BUF_SIZE 4
...
unsigned int value; //число подлежащее выводу на дисплей
unsigned char buffer [BUF_SIZE]; //буфер вывода
...
//функция преобразования
void decbin (unsigned int const* x, unsigned char* buff) {
unsigned int i;
for (i=0; i<BUF_SIZE;i++){buff[i]=0;} //зануляем
for (i=*x; i>=100; i-=100) {buff[0]++;}
for (i=*x-100*buff[0]; i>=10; i-=10) {buff[1]++;}
for (i=*x-100*buff[0]-10*buff[1]; i>=1; i-=1) {buff[2]++;}
//забыл добавить еще:
for (i=0; i<BUF_SIZE;i++){buff[i]+=0x30;} //в ASCII
}
...
//использование
...
decbin(&value, buffer);
lcd_gotoxy(0,0);
lcd_puts(buffer); //вывод
...
На тини2313 это дало экономию памяти более чем в два раза по сравнению со sprintf, которая к тому же не хотела работать с тинькой...
Сообщение отредактировал Goodefine - Mar 7 2009, 13:07
Любой, заслуживающий внимания, опыт приобретается себе в убыток...