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

 
 
> Вывод на семисегментный индикатор, PIC16F690
Сергей Владимиро...
сообщение May 29 2013, 17:55
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 24-05-13
Пользователь №: 76 966



Здравствуйте! Делаю вольтметр от 0 до 5В.

Результат измерения АЦП МК представляется двумя байтами. Например 5В - это 0х03 и 0хFF.

Я "складываю" их в переменную int, умножаю на цену деления 49 и получаю С3СF, это около 50127. Отбрасывая "7", остаётся значение для вывода на индикатор.

Алгоритм преобразования я написал - простой перебор. Из переменной short int 0x03FF в результате я получаю int 0x050127. Затем сдвигом выделяю нужные разряды и вывожу на индикатор.

Однако мой алгоритм работает очень медленно. Посоветуйте как правильно организовать преобразование шестнадцатиричного значение в десятичное. Спасибо.

Сообщение отредактировал Сергей Владимирович - May 29 2013, 17:57
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
maksimp
сообщение Jun 1 2013, 17:55
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 313
Регистрация: 2-07-11
Пользователь №: 66 023



Цитата(Сергей Владимирович @ May 29 2013, 21:55) *
Посоветуйте как правильно организовать преобразование шестнадцатиричного значение в десятичное.

Код
char b[5];
short i=0;
do {
  b[i]=v%10;
  v/=10;
  i++;
} while (i<5);

v - исходное неотрицательное число, b - результат, цифры - b[0] младшая, b[4] старшая.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 28th August 2025 - 00:01
Рейтинг@Mail.ru


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