Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы

Преобразовать двоичное в двоично-десятичное

Непрочитано 27.06.2018, 10:19  
ampy
Гражданин KAZUS.RUN
 
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 996
Сказал спасибо: 448
Сказали Спасибо 388 раз(а) в 202 сообщении(ях)
ampy на пути к лучшему
По умолчанию Re: Преобразовать двоичное в двоично-десятичное

Сообщение от raptor37 Посмотреть сообщение
как перевести x в двоично-десятичное а именно чтобы:
а = 1; b = 0; с = 1; d = 6
Раз уж тут ликбез.
Это не есть двоично-десятичное.
Вот двоично-десятичное:
a = 1; b = 0; c = 1; d = 110.
Реклама:
ampy вне форума  
Сказали "Спасибо" ampy
raptor37 (27.06.2018)
Непрочитано 27.06.2018, 11:10  
abw
Прохожий
 
Регистрация: 18.04.2005
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 2 сообщении(ях)
abw на пути к лучшему
По умолчанию Re: Преобразовать двоичное в двоично-десятичное

Делал прибор 20 лет тому назад, индикатор на 44780.
Пусть коряво, но РАБОТАЕТ.

#include ‹io552.h›
#include ‹defport.h›

void hind1(float fiw,char st,char pos)
{
void hd(char d);
char it,w,i,j,ff[9];
char np;
it=fiw; w=10*(fiw-it); /* w - ОДИН ЗНАК ПОСЛЕ ДЕС. ТОЧКИ */

ff[8]=32; if(it‹0){
ff[7]=45; it=-it; /* ФОРМИРОВАНИЕ ЗНАКА */
}
ff[0]=32;
ff[1]=(w % 10)+48;
ff[2]=46; /* ДЕС. ТОЧКА */
ff[3]=(it % 10)+48;
ff[4]=((it % 100)/10)+48;
ff[5]=((it % 1000)/100)+48;
ff[6]=((it % 10000)/1000)+48;
switch(st) { case 1 : np=as0; break;
case 2 : np=as1; break;
case 3 : np=as2; break;
case 4 : np=as3; break;
default : np=as0; break;}

while(hitcr›127); hitc=np+pos; /* ПОЗИЦИОНИРОВАНИЕ КУРСОРА */
for (j=6; j›0 ; j--)
{
hd(32); /* ОЧИСТКА ПОЛЯ ПЕЧАТИ */
}

while(hitcr›127); hitc=np+pos; /* ПОЗИЦИОНИРОВАНИЕ КУРСОРА */
for (j=6; j›2 ; j--)
{
if (ff[j]==4 ff[j]=32; /* ПОДГОТОВКА СТРОКИ */
else break;
}
j=j+1;
for (np=j; np›1 ; np--)
{
i=ff[np-1];
while(hitcr›127); hitd=i; /* ПЕЧАТЬ СТРОКИ */
}
}

---------------------------------------
defport.h

#define hitc (*(char*) 0x018000) /* адрес регистра команд дисплея */
#define hitd (*(char*) 0x018001) /* адрес регистра данных дисплея */
#define hitcr (*(char*) 0x018002) /* адрес чт. статуса дисплея */
#define hitdr (*(char*) 0x018003) /* адрес чтения данных дисплея */

#define spk (*(int *) 0x00F9) /* КОД ДЛИТЕЛЬНОСТИ ЗВУКА */
#define klav (*(char *) 0x00FB) /* КОД нажатой кнопки */
#define mode (*(char *) 0x00FC) /* КОД режима (ток. бат. Ом.) */
#define pit (*(char *) 0x00FD) /* КОД напр. питания */
#define start (*(char *) 0x00FE) /* КОД режима "start" */

#define as0 0x80
#define as1 0xC0
#define as2 0x94
#define as3 0xD4
abw вне форума  
Сказали "Спасибо" abw
raptor37 (27.06.2018)
Непрочитано 27.06.2018, 17:15  
DmitriyVDN
Гражданин KAZUS.RUN
 
Регистрация: 10.06.2010
Сообщений: 598
Сказал спасибо: 224
Сказали Спасибо 235 раз(а) в 154 сообщении(ях)
DmitriyVDN на пути к лучшему
По умолчанию Re: Преобразовать двоичное в двоично-десятичное

Сообщение от abw Посмотреть сообщение
Делал прибор
чтож так все через опу, чуть мозг не сломал пока читал магические числа
так не проще
Код:
ff[8]=' '; if(it‹0){
ff[7]='-'; it=-it; /* ФОРМИРОВАНИЕ ЗНАКА */
}
ff[0]=' ';
ff[1]=(w % 10)+'0';
ff[2]='.'; /* ДЕС. ТОЧКА */
ff[3]=(it % 10)+'0';
ff[4]=((it % 100)/10)+'0';
ff[5]=((it % 1000)/100)+'0';
ff[6]=((it % 10000)/1000)+'0';
DmitriyVDN вне форума  
Сказали "Спасибо" DmitriyVDN
mike-y-k (27.06.2018)
Непрочитано 27.06.2018, 18:23  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО/МО
Сообщений: 12,282
Сказал спасибо: 11,860
Сказали Спасибо 4,159 раз(а) в 3,177 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Преобразовать двоичное в двоично-десятичное

ampy, таки если говорить про bcd в чистом виде, то для 1016 там всего два байта 0x10 и 0x16 или 16 и 22 в десятичном виде получится. ТС немного ошибся с определениями в самом начале, а все решали именно задачу без внимания к мелочам в определениях
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Сказали "Спасибо" mike-y-k
raptor37 (03.07.2018)
Непрочитано 27.06.2018, 19:48  
6ap6oc
Прописка
 
Регистрация: 02.03.2010
Сообщений: 137
Сказал спасибо: 12
Сказали Спасибо 49 раз(а) в 26 сообщении(ях)
6ap6oc на пути к лучшему
По умолчанию Re: Преобразовать двоичное в двоично-десятичное

U_V = (U_x * 128 ) / (U_12V * 128/120);

Так еще правильнее - на одно умножение меньше (вторая скобка - константа и вычисляется компилятором один раз) , умножение на 128 - простой сдвиг.
6ap6oc вне форума  
Эти 3 пользователя(ей) сказали Спасибо 6ap6oc за это сообщение:
ForcePoint (27.06.2018), mike-y-k (27.06.2018), raptor37 (03.07.2018)
Непрочитано 27.06.2018, 22:08  
Dmitry_
Временная регистрация
 
Аватар для Dmitry_
 
Регистрация: 25.11.2016
Адрес: Ох и где я только не проживал...
Сообщений: 80
Сказал спасибо: 87
Сказали Спасибо 174 раз(а) в 40 сообщении(ях)
Dmitry_ на пути к лучшему
По умолчанию Re: Преобразовать двоичное в двоично-десятичное

Сообщение от ampy Посмотреть сообщение
Раз уж тут ликбез.
Вот двоично-десятичное:
... d = 110.
В char 3 символа не запишешь. Так что там всё правильно написано. d=6, а уже char преобразовать в byte можно как угодно.
Dmitry_ вне форума  
Непрочитано 28.06.2018, 06:22  
brawaga
Частый гость
 
Регистрация: 06.01.2011
Сообщений: 32
Сказал спасибо: 33
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
brawaga на пути к лучшему
По умолчанию Re: Преобразовать двоичное в двоично-десятичное

На некоторых камнях нет деления. В этом случае его нужно заменить умножением, ведь иначе компилятор его заменит на цепочку инструкций, что будет не так эффективно.
brawaga вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как преобразовать из двоичного в десять polimer Микроконтроллеры, АЦП, память и т.д 4 21.03.2006 23:23


Часовой пояс GMT +4, время: 12:13.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.