Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
ИЗБИТЫЙ ВОПРОС о перевороте байта.
Отправлено
Trashy
20 апреля 2007 г. 14:05
Есть какой-нить "макрос" для С++, что бы при компиляции проекта, биты в байтах массива переворачивались?
Сгенерил шрифты, а они все вверх ногами. Приходится тратить время контроллера на переворачивание байта.
Составить ответ
|
Вернуться на конференцию
Ответы
выдвигаем бит влево и задвигаем его вправо в другой байт, и так 8 раз
—
K A A
(20.04.2007 16:19:34
213.132.80.164
,
пустое
)
Это, конечно, на ассемблере хорошо
—
K A A
(20.04.2007 16:20:13
213.132.80.164
,
пустое
)
человеку надо было на макропроцессоре
—
koyodza
(20.04.2007 16:35:13
83.170.240.226
,
пустое
)
Вообще-то человеку надо было на С++, где всякие define не приветствуются.
—
Quasy
(20.04.2007 17:04:6
80.243.9.34
,
пустое
)
приветствуются может они и не очень, но без них никак
—
koyodza
(20.04.2007 17:11:51
83.170.240.226
, 26 байт)
Не думаю, что такой дифайн лучше инлайна, причем такие скороговорки лучше делать по частям, чтобы умница компилер не стал оптимизировать порядок вычислений.
—
Quasy
(20.04.2007 17:18:17
80.243.9.34
,
пустое
)
если это операция над константой, то конечно лучше - просто константа будет заменена на другую
—
koyodza
(20.04.2007 17:26:38
83.170.240.226
, 43 байт)
Чето не понял: кто дифайну аргумент задавать будет и на каком этапе?
—
Quasy
(20.04.2007 17:35:4
80.243.9.34
,
пустое
)
Ответ:
—
koyodza
(20.04.2007 18:53:54
83.170.240.226
, 244 байт)
У меня тоже была похожая проблема. Не могли бы вы кусочек кода написать чтобы препроцессор сам тетрады местами менял. Спасибо.
—
VasilyS
(20.04.2007 21:40:11
80.92.96.25
,
пустое
)
Индикатор вверх ногами поставить. Или см. вариант koyodza
—
-=ВН=-
(20.04.2007 15:10:17
193.125.71.140
,
пустое
)
Хотя:-) ((x&1) <<7)|((x&2)<<5)|((x&4)<<3)|((x&8)<<1)|((x&0x10)>>1)|((x&0x20)>>3)|((x&0x40)>>5)|((x&0x80)>7)
—
-=ВН=-
(20.04.2007 15:21:18
193.125.71.140
,
пустое
)
в моем варианте меньше операций. Хотя для данного применения (в макросе) это не имеет значения
—
koyodza
(20.04.2007 17:13:14
83.170.240.226
,
пустое
)
У Вас, как мне кажется, имеется скрытая ошибка, вдобавок к явно недостаточному числу скобок:-))
—
-=ВН=-
(20.04.2007 18:00:44
193.125.71.140
,
пустое
)
да, действительно есть. Я же предупреждал, что пишу по памяти
—
koyodza
(20.04.2007 18:59:41
83.170.240.226
, 166 байт)
Не нужно, спасибо:-)
—
-=ВН=-
(20.04.2007 19:05:29
193.125.71.140
,
пустое
)
Мужики, хватит ерундой маяться. Работайте. Удваивайте ВВП. :о)
—
Trashy
(20.04.2007 15:22:52
217.29.84.72
,
пустое
)
Ну нифига себе. Написал ему классический битреверс, так еще и не нравится. Сами работайте и ерунду не спрашивайте. Шрифт у него вверх ногами, блин.
—
-=ВН=-
(20.04.2007 15:54:37
193.125.71.140
,
пустое
)
Ваще-то ни одним из ваших я не воспользовался. Ибо свой пашет...
—
Trashy
(20.04.2007 16:08:53
217.29.84.72
, 56 байт)
это вместо спасибо?
—
koyodza
(20.04.2007 15:24:41
83.170.240.226
, 3 байт)
Счастливые лица россиян - лучше любого спасиба! :о)
—
Trashy
(20.04.2007 15:27:54
217.29.84.72
,
пустое
)
ну i де тут росiяни?
—
koyodza
(20.04.2007 15:29:41
83.170.240.226
, 13 байт)
А, шо? Уже не надеешься?
—
Trashy
(20.04.2007 15:30:48
217.29.84.72
,
пустое
)
на ЧТО? 8=()
—
koyodza
(20.04.2007 15:31:42
83.170.240.226
,
пустое
)
Ответ:
—
koyodza
(20.04.2007 15:04:13
83.170.240.226
, 109 байт)
опоздал
—
koyodza
(20.04.2007 15:10:50
83.170.240.226
,
пустое
)
Нормально. Твоя короче. Чичаз в коде проверю...
—
Trashy
(20.04.2007 15:11:56
217.29.84.72
,
пустое
)
там со скобками внимательно. По памяти набирал
—
koyodza
(20.04.2007 15:13:29
83.170.240.226
,
пустое
)
Ответ: Еще
—
Artem-1.6E-19
(20.04.2007 14:10:23
91.124.250.181
, 31 байт)
О! Мужик! Дай пять!
—
Trashy
(20.04.2007 14:11:40
217.29.84.72
,
пустое
)
Табличный способ для тебя новость?
—
=L.A.=
(20.04.2007 14:20:32
213.134.214.10
,
пустое
)
в ПРОГЕ НЕТ. А вот с макросом тормознул. Я ваще таку шнягу сляпал:
—
Trashy
(20.04.2007 14:22:33
217.29.84.72
, 262 байт)
Кароче! Завистники и не доброжелатели... Скопируйте эту конструкцию себе в самую тайную папку, потом будете показывать детям и хвастать, что этой вещью с вами сам её изобретатель поделился.
—
Trashy
(20.04.2007 14:48:56
217.29.84.72
, 13 байт)
Балбес! Это на этапе компиляции! Это не контроллер делает.
—
Trashy
(20.04.2007 14:27:10
217.29.84.72
,
пустое
)
Прошу прощения за столь развязные высказывания...
—
Trashy
(20.04.2007 14:58:36
217.29.84.72
,
пустое
)
А не макрос ли Вы создали? Соответственно дальше все делать контроллеру.
—
Nikolaj
(20.04.2007 14:31:13
213.183.106.185
,
пустое
)
Для этапа компиляции есть директивы компилятору. Хотя не вижу смысла. Почему бы сразу не написать перевёрнутый байт.
—
=L.A.=
(20.04.2007 14:29:29
213.134.214.10
,
пустое
)
А смысл в том, что охеренный массив шрифтов(сгенерённых не тобой) затрахаешься переворачивать.
—
Trashy
(20.04.2007 14:30:55
217.29.84.72
,
пустое
)
Напишите простую программу на PC или поищите программу редактор шрифтов. Обычно они умеют сохранять в удобном вам виде.(-)
—
misyachniy
(20.04.2007 14:36:3
212.90.165.14
,
пустое
)
LCD Icon криво сохраняет шрифты шире 8 точек
—
Al Volovich
(20.04.2007 15:10:59
83.146.94.164
, 85 байт)
Напиши программку, которая сделает всё автоматически.
—
=L.A.=
(20.04.2007 14:33:43
213.134.214.10
,
пустое
)
А можно и шину данных индикатора перевернуть. Тогда достаточно только команды индикатору исправить, их немного.
—
Quasy
(20.04.2007 14:33:40
80.243.9.34
,
пустое
)
Да.. Мощщная конструкция ! О циклах тоже не слышал?
—
=L.A.=
(20.04.2007 14:26:17
213.134.214.10
,
пустое
)
Если убрать в конце ковычки, то оно работает!!!
—
Trashy
(20.04.2007 14:25:14
217.29.84.72
,
пустое
)
И что, все 256 значений будешь прописывать? Не проще ли тогда воспользоваться функцией Replace редактора? :-)
—
AlexD
(20.04.2007 14:18:6
212.23.84.52
,
пустое
)
говорят, в некоторых контроллерах TI есть даже команда "переворота" байта.
—
=L.A.=
(20.04.2007 14:21:53
213.134.214.10
,
пустое
)
Нука технологию озвуч....
—
Trashy
(20.04.2007 14:20:42
217.29.84.72
,
пустое
)
Технология: Соединяешь два порта "Black Eagle-вским" способом - по-диагонали. Пропускаешь таблицу через эту заплатку, выводишь в COM. В логе получаешь таблицу :)))
—
Гудвин
(20.04.2007 14:28:44
84.18.96.89
,
пустое
)
Придурошный способ, однако . Впрочем, от BE иного и не стоит (ло) ждать. Есть и более продуктивные способы! ;)
—
Макаров
(20.04.2007 15:15:33
89.113.48.3
,
пустое
)
Ну в каждой шутке есть свое рациональное зерно. У автора уже была в программе процедурка вращения. Написал бы цикл в пяток строк ( по таблице с выводом в COM) и через минуту имел готовую таблицу... Так шта... И чем таким вам досадил орел?
—
Гудвин
(20.04.2007 15:25:52
195.10.212.22
,
пустое
)
А Вы, что, Гудвин, подзабыли! Да всё тем же! Агрессивным Хамством , типа : моя пипа круче . Сколько тем интересных в ветках завалил. Помнится, ну вот, читаешь Вроде щас народ подключится...новые идейки, там. Тут бац и вторая смена -BE на проводе! Тьфу-ты! Типа: Элвис приехал в здание. Элвис покинул здание.
—
Макаров
(20.04.2007 16:16:0
89.113.48.3
,
пустое
)
Наверное сейчас он исправился :)
—
Гудвин
(20.04.2007 16:50:28
195.10.212.22
,
пустое
)
Как всё сложно. Я маткадом быстрее сделаю.
—
Trashy
(20.04.2007 14:29:35
217.29.84.72
,
пустое
)
Дык пошутил :) Главное не противоречит теме :) Переверни эту таблицу самописной утилиткой в пяток строк и не парься....
—
Гудвин
(20.04.2007 14:31:59
84.18.96.89
,
пустое
)
в протеусе с записью в епром(файл)
—
werewolf
(20.04.2007 14:44:25
212.8.34.66
,
пустое
)
Начал расписывать, и понял что не проканает :-)
—
AlexD
(20.04.2007 14:25:0
212.23.84.52
,
пустое
)
Ответ:
—
Artem-1.6E-19
(20.04.2007 14:07:30
91.124.250.181
, 104 байт)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 89:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru