Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Спасибо!!! Ещё ВОПРОС - как заполнить байт, начиная со старшего разряда к младшему?

Отправлено yurishok (62.44.127.184) 08 мая 2015, г. 13:30
В ответ на: Ответ: отправлено vitalyn 08 мая 2015, г. 12:28

Как заполнить байт, начиная со старшего разряда к младшему?
Вызываю функцию GetBit она возвращает 1 бит:
bit GetBit(unsigned char *src, unsigned int addr)
Функция GetBit работает правильно и возращает бит из буфера *src по адресу addr. В ней проблемы нет.

Вопрос как заполнить байт, начиная со старшего разряда к младшему?
Нашёл такой алгоритм
Byte = 0;
for (i=0x80; i>0; i/=2) Byte |= i*GetBit(buf,addr);
В Byte должен получиться байт, заполненный битами от старшего разряда к младшему.
Не нравится, что есть операции деления и умножения.
Для 8 разрядного МК сильно круто. Можно ли без них, есть ли способ проще?


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 89:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru