Easyelectronics.ru

Электроника для всех
Текущее время: 21 май 2018, 04:32

Часовой пояс: UTC + 5 часов



    • JLCPCB - Платы прототипов всего за 2$ c бесплатной доставкой (при первом заказе)
    • 10 PCBs за $2 для 2 слоев, $15 для 4 слойной, $74 для 6 слойной платы.
    • Крупнейший китайский производитель прототипных плат. 290000+ клиентов & 8000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин радиодеталей.

Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: MACRO для работы с битами SFR (ASEM 51)
СообщениеДобавлено: 04 июн 2012, 15:36 
Старожил
Аватара пользователя

Зарегистрирован: 30 янв 2010, 01:03
Сообщения: 647
Откуда: Херсон
Открыв код из темы http://forum.easyelectronics.ru/viewtopic.php?f=6&t=10703 решил вспомнить, как оно на 51 писать проги.

Вот сделал пару МАКРО для работы с битами SFR регистров, идею я уже когда-то предлагал.
Show

_________________
Если руки золотые, то не важно с какого места они растут.
Изображение
Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MACRO для работы с битами SFR (ASEM 51)
СообщениеДобавлено: 05 июн 2012, 13:01 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 3607
Откуда: г. Липецк
На первый взгляд полезные макросы.
Пишу на ассемблере AVR, и привык к записям вроде
Код:
outi   ADMUX, (1<<REFS0) | (1<<ADLAR)

Но на работе иногда приходится сталкиваться с ассемблером а51 и напрягают записи типа
Код:
MOV   TMOD,#00100000B

приходится лезть в даташит и выяснять что имелось в виду ;C/T = 0, Mode = 2
При применении предложенных макросов текст программы может стать более удобочитаемым.
P.S. При инициализации регистров макросом mSetBits вместо команды присвоения непосредственного значения MOV будет использована команда "логическое "ИЛИ" ORL. Т. е. макрос изменяет только указанные биты. Иногда это неприемлемо. Может быть стоит добавить макрос mInitBits с использованием MOV?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MACRO для работы с битами SFR (ASEM 51)
СообщениеДобавлено: 22 апр 2013, 18:18 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 3607
Откуда: г. Липецк
У каждого ассемблера, а в особенности у его препроцессора есть свои особенности. Я пользуюсь IDE Keil uVision 4 и ее ассемблером А51. Прямая попытка применить эти макросы успехом не увенчалась. Пришлось адаптировать. Адаптированный вариант выкладываю:
Show Macros.inc


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB