Как перевернуть байт

Раздел начинающих пользователей
Правила форума
В песочнице можно спрашивать когда незнаешь где спросить.
В песочнице нелзя посылать в гугл
В песочнице можно задавать любой вопрос, но на него могут и неответить.
Песочница для тех, кто начинает свои вопросы с защиты чайников от пинков.
В песочницу будут перетаскиваться вопросы неполучившие ответа.
Песочница - попытка навести порядок.
На песочницу большие надежды.

Re: Как перевернуть байт

Сообщение andrewproffi (Андрей) » 04 фев 2017, 09:26

Спасибо, я понимаю что это все уже гдето на форуме было, но поиск тут неудобный :x
С примером от kindofsky мы разобрались, он работает, но медленнее чем приведенный мною, я прикладывал скриншот симуляции. Есть способ сделать это быстрее?
Аватар пользователя
Ник: andrewproffi
Имя: Андрей
(Томск)
Консультант
Консультант
Информация о пользователе

Re: Как перевернуть байт

Сообщение mim (mim) » 04 фев 2017, 09:33

Дело в том что вот эта строка - if (out & 0x01) - показывает КАКОЙ бит будет выводиться в порт.

andrewproffi писал(а):возможно, с первого раза не получилось.
Что это за ответ???? Разве может себе позволить такую роскошь как свободно показывать то что ты не знаешь азбуки???? Это элементарные азы битовых операций... Как можно учить других и не знать азов самому... Ты как-то подымай свой уровень...
andrewproffi писал(а):С примером от kindofsky мы разобрались...Есть способ сделать это быстрее?
Опять глупость... как разобрались???? А я не верю ... мои измерения выложенного показывают идентичность...
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе

Re: Как перевернуть байт

Сообщение andrewproffi (Андрей) » 04 фев 2017, 09:45

а мои повторные измерения совпадают с предыдущими... :P и показывают, что программа выполненная на таких функциях
Код: выделить все
while (counter < 8)  //отправка G
   {
      tx_bit(G);
      G = G << 1;            //Rotate to next bit of data
      counter++;                  //Increment Counter
   }

весит меньше но выполняется МЕДЛЕННЕЕ чем на таких
Код: выделить все
a = G >> 7;   
tx_bit(a);
a = G >> 6;   
tx_bit(a);
a = G >> 5;   
tx_bit(a);
a = G >> 4;   
tx_bit(a);
a = G >> 3;   
tx_bit(a);
a = G >> 2;   
tx_bit(a);
a = G >> 1;   
tx_bit(a);
a = G ;   
tx_bit(a);


соответственно в первой программе (out & 0x80), во второй (out & 0x01)
Аватар пользователя
Ник: andrewproffi
Имя: Андрей
(Томск)
Консультант
Консультант
Информация о пользователе
Вернуться наверх

Re: Как перевернуть байт

Сообщение mim (mim) » 04 фев 2017, 10:54

:headbang: я сравнивал
Код: выделить все
(out & 0x80)
с
Код: выделить все
 (out & 0x01)

andrewproffi писал(а):весит меньше но выполняется МЕДЛЕННЕЕ чем на таких
Однозначно... и это тоже уже рассматривали... Последовательность действий всегда длиннее, но быстрее...

Не самый удачный выбор - ONE WIRE, он хорош для ОБМЕНА данными, именно продтяжка обеспечивает прослушивание линии... Однако это требует настройки двух регистров РЕГИСТР НАПРАВЛЕНИЯ и РЕГИСТР ПОРТА. Для односторонней выдачи НАПРАВЛЕНИЕ настраивается только один раз... Подумай над этим...
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: Как перевернуть байт

Сообщение andrewproffi (Андрей) » 04 фев 2017, 11:40

Меня привлекает этот компонент своей относительно простотой. Все таки я не программист.
это вы к тому что вместо определений
#define %a_Float_OO FC_CAL_Bit_In_DDR( %a_OO_PORT , %a_OO_TRIS , %a_OO_PIN )
#define %a_Clear_OO FC_CAL_Bit_Low_DDR( %a_OO_PORT , %a_OO_TRIS , %a_OO_PIN )
в макросе отправки бита можно использовать запись короче?
Я не соображу как сделать определение OO_PORT привязанным к выводу к которому подключен компонент.
Аватар пользователя
Ник: andrewproffi
Имя: Андрей
(Томск)
Консультант
Консультант
Информация о пользователе
Вернуться наверх

Re: Как перевернуть байт

Сообщение kindofsky (kindofsky) » 05 фев 2017, 17:22

Привет Мим.
Вот это - РЕГИСТР НАПРАВЛЕНИЯ - ты ведь имел ввиду АВР?
Аватар пользователя
Ник: kindofsky
Имя: kindofsky
(Москва)
Супер Гуру
Супер Гуру
Информация о пользователе
Вернуться наверх

Re: Как перевернуть байт

Сообщение andrewproffi (Андрей) » 05 фев 2017, 17:46

там ссылка должна быть?
Аватар пользователя
Ник: andrewproffi
Имя: Андрей
(Томск)
Консультант
Консультант
Информация о пользователе
Вернуться наверх

Пред.

Вернуться в ПЕСОЧНИЦА

Кто сейчас на форуме

Пользователь просматривает форум: нет зарегистрированных пользователей

cron