Jump to content

    
Sign in to follow this  
vts

hex в символы

Recommended Posts

нужно 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. Заранее спасибо.

Share this post


Link to post
Share on other sites

намудрили на ровном месте

 

пробуйте так

 

u8 src = 0x12;

u8 dst[2];

 

dst[0] = bin2asciihex( src >> 4 );

dst[1] = bin2asciihex( src & 0x0F );

 

//------------------------------------------------------------------------------

u8fast bin2asciihex( u8fast bin )

{

if( bin > 9 )

return( bin + 'A' - 10 );

else

return( bin + '0' );

}

 

и для принимающей стороны

 

//------------------------------------------------------------------------------

u8fast asciihex2bin( u8fast hex )

{

if( hex >= 'A' )

return( hex - 'A' + 10 );

else

return( hex - '0' );

}

Share this post


Link to post
Share on other sites

Э-э-э-э....

Что-то Вы намудрили...

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

........
  printf("%c%c\n",  BinToHex(Byte >> 4), BinToHex(Byte & 0x0F));

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this