реклама на сайте
подробности

 
 
> hex to dec и в массив как сделать, преобразовать число в массив символов
bugor
сообщение Mar 7 2009, 06:08
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 23
Регистрация: 26-02-09
Пользователь №: 45 408



Есть число однобайтное или 2х байтное как его преобразовать в массив в символьном виде чтобы потом это дело вывести на LCD дисплей
например 0131h -это 305 десятичное - нужен массив из допустим mydata[3] со значениями {33, 30, 35}
чтобы можно было каждое значение выкинуть в свое место на экран
пробовал форматированный вывод но ничего не получилось чегото да и обьем огромный просто занимает эта функция. Я в IAR не смог по контексту найти чегото такой функции, может искал неправильно?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Goodefine
сообщение Mar 7 2009, 12:33
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 6-08-07
Из: Приднестровье, Тирасполь
Пользователь №: 29 581



Как вариант:
Код
...
#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


--------------------
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 04:13
Рейтинг@Mail.ru


Страница сгенерированна за 0.01393 секунд с 7
ELECTRONIX ©2004-2016