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

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

Вы будете смеяться, но опять реверс бит на АВР. Теперь 11 циклов.(+)

Отправлено Quasy 07 февраля 2008 г. 14:38



С помощью ма-а-а-ааленькой таблички в ЕПРОМ.
Кстати с ЕПРОМовской таблицей на 256 - самый быстрый вaриант, реверса бит, имхо.
Ну совсем без таблички туго :)
А тут как говорится, "немножко беременная".
Таблица зашивается в ЕПРОМ программатором при зашивке основной программы (эта фраза лишняя, все знают как :) )
Не ругайте. Обещаю больше не касаться этой темы. Это просто послеобеденный пароксизьм :(
//////////////////////////////
PUBLIC Reverse10
;--- (R16 - INPUT-OUTPUT)
////////////
RSEG CODE
////////////
Reverse10:
LDI R17,16 ; 1
MUL R16, R17 ; 2
OUT EEAR, R1 ; 3
SBI EECR, EERE ; 4
IN R16, EEDR ; 5
SWAP R0 ; 6
OUT EEAR, R0 ; 7
SBI EECR, EERE ; 8
IN R17, EEDR ; 9
SWAP R17 ; 10
OR R16, R17 ; 11 end!
;---------------------------
ret ; output to C
;---------------------------
////////////
RSEG EEPROM_I
////////////
DB 0x00, 0x08, 0x04, 0x0c
DB 0x02, 0x0a, 0x06, 0x0e
DB 0x01, 0x09, 0x05, 0x0d
DB 0x03, 0x0b, 0x07, 0x0f
/////////////////////////////


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

Ответы


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

Сообщение:

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

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

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

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