vts 0 15 декабря, 2014 Опубликовано 15 декабря, 2014 · Жалоба нужно 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. Заранее спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
megajohn 3 15 декабря, 2014 Опубликовано 15 декабря, 2014 · Жалоба намудрили на ровном месте пробуйте так 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' ); } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Палыч 6 15 декабря, 2014 Опубликовано 15 декабря, 2014 · Жалоба Э-э-э-э.... Что-то Вы намудрили... // Преобразование числа 0-15 в шестнадцатиричный символ char BinToHex(char B) { static char * Symbol= "0123456789ABCDEF"; return Symbol[B & 0x0F]; } ........ printf("%c%c\n", BinToHex(Byte >> 4), BinToHex(Byte & 0x0F)); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexeyv 0 17 декабря, 2014 Опубликовано 17 декабря, 2014 (изменено) · Жалоба сорри, что то я мудрил, не проснулся еще.... Изменено 17 декабря, 2014 пользователем alexeyv Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться