Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> перевод двоичного кода в Dec и Hex вид 
V
    Опции темы
supercelt
Дата 20.8.2015, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 25.8.2005

Репутация: нет
Всего: 1



На меге16 принимаю двоичный код, состоящий из 64 бит. Нужная часть кода, которая хранит id номер состоит из 32 бит. По мере приёма набиваю битами массив. Полуячается:

Код

RFID_buffer[0] = {0,0,1,1,1,0,0,1}
RFID_buffer[1] = {1,1,0,0,1,0,0,0}
RFID_buffer[2] = {0,1,1,1,1,0,0,0}
RFID_buffer[3] = {0,1,1,1,0,1,1,1}


Не поможете примером на СИ как при прогоне массива через цикл перевести 32 битовый код в номер десятичного вида и номер в шестнадцатиричном виде? Ну или просто как перевести двоичный код в dec и hex?
PM   Вверх
Romikgy
Дата 20.8.2015, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



не совсем понятно ... чем не подходит sprintf ?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
bass
Дата 20.8.2015, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 315
Регистрация: 5.8.2007

Репутация: нет
Всего: 2



Воспользуйтесь битовыми операциями.
Переменная result определите uint_16, на память не помню как определяються .. 

Код

Result = (Bit1<<0) +(Bit2<<1)+(Bit3<<2)......
Result = RFID_buffer[0] + (RFID_buffer[1]<<8);

Даже не нужно через цикл прогонять. Сдвиг << на какое колличество символов.

{0,1,0,1} << 1 = {1,0,1,0}   
{0,1,0,1} << 2 = {1,0,1,0,0}

   
PM MAIL   Вверх
supercelt
Дата 20.8.2015, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 25.8.2005

Репутация: нет
Всего: 1



Спасибо, разобрался
Код

char p[17];
                                for(byte_counter = 0; byte_counter < 5; byte_counter++){
                                    sprintf(p, "%hhX", RFID_buffer[byte_counter]);
                                    Lcd_prints ( 0, 0, FONT_1X, (unsigned char*)PSTR("Number:") );
                                    Lcd_print ( 0, 1, FONT_1X, (unsigned char*) p );
                                    
                                    Lcd_update();    
                                }

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.0520 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.