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

 
 
> hex в символы
vts
сообщение Dec 15 2014, 11:30
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 19-01-10
Из: Ярославль
Пользователь №: 54 915



нужно 8-разрядное значение АЦП передать в символьном виде в аски коде. Написал две функции для старшего и младшего полубайта.
u08 CharToMSBConverter(u08 bvByte)
{
u08 a, b, c, d, e;

a = bvByte>>4;
b = a%10;
c = a-9*b;
d = b<<4;
e = c+d+0x30;
return e;
}

u08 CharToLSBConverter(u08 bvByte)
{
u08 a, b, c, d, e;

a = bvByte&0x0f;
b = a%10;
c = a-9*b;
d = b<<4;
e = c+d+0x30;
return e;
но принимающая сторона это не понимает, а когда передаю непосредственно символами то все нормально. Подскажите в чем я ошибся, на бумаге вроде все правильно. Пишу в IAR для ATmega32. Заранее спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Палыч
сообщение Dec 15 2014, 15:33
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Э-э-э-э....
Что-то Вы намудрили...
Код
// Преобразование числа 0-15 в шестнадцатиричный символ
char BinToHex(char B)
{
  static char * Symbol= "0123456789ABCDEF";
  return Symbol[B & 0x0F];
}

........
  printf("%c%c\n",  BinToHex(Byte >> 4), BinToHex(Byte & 0x0F));
Go to the top of the page
 
+Quote Post
alexeyv
сообщение Dec 17 2014, 03:42
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 298
Регистрация: 26-01-09
Из: Пермь
Пользователь №: 43 940



сорри, что то я мудрил, не проснулся еще....

Сообщение отредактировал alexeyv - Dec 17 2014, 03:44
Go to the top of the page
 
+Quote Post



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

 


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


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