Миграция проектов на ПЛИС новых производителей

Макропрограммирование на AVRASM2

Новичок
 
Аватар для Dmitry122
 
Регистрация: 26.02.2009
Сообщений: 65
Репутация: 22
12 7
0 0
 
28.12.2016 11:21 #1
Предлагаю поделиться интересными макросами или приёмами макропрограммирования для компилятора avrasm2.
Вот пример использования рекурсии в макросах:
Код:
.list
.macro Ft
.if a != 1
	.set r = r * a
	.set a = a - 1
	Ft a

.endif
.endmacro

.macro Factorial
.set a = @0
.set r = 1
	Ft a

.endmacro

.cseg
	Factorial 7

	ldi r16,byte4(r)
	ldi r16,byte3(r)
	ldi r16,byte2(r)
	ldi r16,byte1(r)
Используя рекурсивный вызов и другие приёмы, можно писать довольно интересные вещи. Вот здесь макрос для инициализации портов ввода/вывода.http://www.avr-assm.ru/files/macro2.zip
Оценка
В многообразии литиевых батареек и аккумуляторов нет какого-то универсального или идеального варианта. Выбирая тот или иной вариант для питания устройства, разработчику приходится оперировать множеством параметров, используя наиболее оптимальное их сочетание для каждого приложения. Разберем параметры для различных приложений.
Ответ
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход
Электронные компоненты. Бесплатная доставка по России
Часовой пояс GMT +3, время: 10:15.
Обратная связь РадиоЛоцман Вверх