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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 30.01.2010, 13:40  
begun
Гражданин KAZUS.RU
 
Регистрация: 18.07.2006
Сообщений: 870
Сказал спасибо: 231
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
begun на пути к лучшему
По умолчанию преобразовать HEX в DEC

друзья!
надо преобразовать HEX в CVAVR в DEC.
искал надлежащую функцию в cvavr ,но в книге нашел только bin
в bcd . Если цифры не превышают "9" то проблем нет ,а после ".9" уже все
путается.
смотрел разные проекты в надежде, что чтото выисню, но безуспешно.
искал в googl- е ,опять таки ничего. Может это так тривиално, что на него даже не обращают внимание ,но для меня стала проблемой.
Подскажите пожалуйста, существует ли специальная функция в CVAVR
перевода HEX в DEC , или же будьте любезны указать как это можно осуществить?
Заранее благодарен .
Реклама:
begun вне форума  
Непрочитано 30.01.2010, 14:46  
Vallav
Временная регистрация
 
Регистрация: 09.07.2005
Сообщений: 91
Сказал спасибо: 1
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Vallav на пути к лучшему
По умолчанию Re: преобразовать HEX в DEC

1.Переводите HEX в bin.
2.Используете найденную Вами bin в bcd.
3.Переводите bcd в DEC.
Операции 1 и 3 довольно простые.
Это просто переименование.
Vallav вне форума  
Непрочитано 30.01.2010, 14:51  
UserM
Прописка
 
Регистрация: 14.08.2006
Сообщений: 106
Сказал спасибо: 19
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
UserM на пути к лучшему
По умолчанию Re: преобразовать HEX в DEC

Вы можете использовать функции форматированного вывода - printf()
Или я что то не понял.
UserM вне форума  
Непрочитано 30.01.2010, 15:17  
andries5
Почётный гражданин KAZUS.RU
 
Регистрация: 19.02.2008
Сообщений: 1,802
Сказал спасибо: 124
Сказали Спасибо 602 раз(а) в 419 сообщении(ях)
andries5 на пути к лучшему
По умолчанию Re: преобразовать HEX в DEC

Видимо Вы хотите получить строку из HEXa.
Тогда
#include ‹stdio.h›
......

int H;
char D[5];

H=0xC2; // H=0xC2 это к примеру
sprintf(D,"%d",H);

например так.
andries5 вне форума  
Непрочитано 30.01.2010, 19:01  
begun
Гражданин KAZUS.RU
 
Регистрация: 18.07.2006
Сообщений: 870
Сказал спасибо: 231
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
begun на пути к лучшему
По умолчанию Re: преобразовать HEX в DEC

друзья!
Спасибо за оеративные ответы.
Я попробовал код предложенный andries5 и был удивлен как просто
оказывается все делается когда знаешь .
Эти несколько чудесных строк выводят на LCD в формате BCD число из HEX ;
char buff[17];
int a=0xAABB;
sprintf (buff,"a=%u",a);
lcd_clear();
lcd_puts(buff);
выводится a=43707 ,что является BCD эквивалентом 0xAABB.
Еще раз всем огромное спасибо!!!!!!!!!!!
begun вне форума  
Непрочитано 30.01.2010, 19:26  
begun
Гражданин KAZUS.RU
 
Регистрация: 18.07.2006
Сообщений: 870
Сказал спасибо: 231
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
begun на пути к лучшему
По умолчанию Re: преобразовать HEX в DEC

друзья!
Ну вот, вроде все было хорошо, но черт не спит и очередная загвоздка.
как только увеличил разрядность и перешол на LONG ,верхные два баита "AABB" срезает и выдает только BCD на нижние два баита.
char buff[17];
long a=0xAABBCCDD;
sprintf (buff,"a=%u",a);
lcd_clear();
lcd_puts(buff);
выдает a=52445 , а не 2864434397 ,как и вроде должно было.
что тут можно делать?
cпасибо заранее.
begun вне форума  
Непрочитано 30.01.2010, 19:27  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: преобразовать HEX в DEC

Сообщение от begun Посмотреть сообщение
друзья!
Спасибо за оеративные ответы.
Я попробовал код предложенный andries5 и был удивлен как просто
оказывается все делается когда знаешь .
Эти несколько чудесных строк выводят на LCD в формате BCD число из HEX ;
char buff[17];
int a=0xAABB;
sprintf (buff,"a=%u",a);
lcd_clear();
lcd_puts(buff);
выводится a=43707 ,что является BCD эквивалентом 0xAABB.
Еще раз всем огромное спасибо!!!!!!!!!!!
sprintf преобразует 43707 в ASCII-символы: 0x34 0x33 0x37 0x30 0x37. BCD это 0x4, 0x3, 0x7,0x0, 0x7 или 0x04 0x37 0x07 (каждый ниббл это цифра в десятичном виде).
realid вне форума  
Непрочитано 30.01.2010, 20:22  
begun
Гражданин KAZUS.RU
 
Регистрация: 18.07.2006
Сообщений: 870
Сказал спасибо: 231
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
begun на пути к лучшему
По умолчанию Re: преобразовать HEX в DEC

да ,но сейчас проблема стала преобразовать LONG HEX В BCD.
char buff[17];
long a=0xAABBCCDD;
sprintf (buff,"a=%u",a);
lcd_clear();
lcd_puts(buff);
выдает a=52445 , а не 2864434397 ,как и вроде должно было.
что тут можно делать?
cпасибо заранее.
begun вне форума  
Непрочитано 30.01.2010, 20:31  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: преобразовать HEX в DEC

Сообщение от begun Посмотреть сообщение
да ,но сейчас проблема стала преобразовать LONG HEX В BCD.
char buff[17];
long a=0xAABBCCDD;
sprintf (buff,"a=%u",a);
lcd_clear();
lcd_puts(buff);
выдает a=52445 , а не 2864434397 ,как и вроде должно было.
что тут можно делать?
cпасибо заранее.
Код:
sprintf (buff,"a=%lu",a);
realid вне форума  
Непрочитано 30.01.2010, 22:27  
begun
Гражданин KAZUS.RU
 
Регистрация: 18.07.2006
Сообщений: 870
Сказал спасибо: 231
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
begun на пути к лучшему
По умолчанию Re: преобразовать HEX в DEC

realid!
конечно ,большое спасибо за желание помочь ,но сколько не крутил,
все равно пишет тоже самое;
a=52445;
Не знаю, что делать, может чего то не так делаю, но вроде набрал правильно.
begun вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразовать +12V в +9V AVO777 Источники питания и свет 5 14.10.2009 12:30
proteus, atmega8, меняю ноги в hex - не работает digitest Микроконтроллеры, АЦП, память и т.д 3 08.10.2009 13:07
Нужно преобразовать ШИМ в 0-10В, нагрузка 3А Xuchik Источники питания и свет 37 02.10.2009 08:24


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot