[an error occurred while processing this directive]
AVRу (часть2) («Можно ли в ассемблере AVR Studio передавать параметры в макрос в виде выражений» )
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Доктор ТуамОсес 17 октября 2005 г. 22:35

Ниже приводимый фрагмент программы показывает, что можно.

Поэтому я ещё раз повторяю: прежде чем «наезжать» и указывать на чью-то глупость надо хоть чуть-чуть разбираться в обсуждаемой проблеме, поэтому внимательней изучайте вашу функцию RTFM. И еще, (так, для общего развития) микроконтроллер ATmega603 не поддерживает инструкцию «sts» хотя имеет «на борту» 4кБайта SRAM.


.LISTMAC
;===================== Раздел описаний ===================================
.EQU FLAG1 = 0
.EQU FLAG2 = 1
.EQU FLAG3 = 2
.EQU VALUE = 54
;-----------------------------------------------------------------------
.MACRO DEMO
ldi r16, @0
ldi r17, @1
.ENDMACRO
;===========================================================================

;================= Основная программа ======================================
DEMO (VALUE+10), (1 << FLAG1 + 0b01000000)
;===========================================================================


Building project...
C:\AVR > del avr.lst
C:\AVR > "C:\Program Files\Atmel\AVR Tools\AvrAssembler\avrasm32.exe" -fI "C:\AVR\AVR.asm" -o "avr.hex" -d "avr.obj" -e "avr.eep" -I "C:\AVR" -I "C:\Program Files\Atmel\AVR Tools\AvrAssembler\AppNotes" -w -m "avr.map" -l "avr.lst"
AVRASM: AVR macro assembler version 1.57 (Nov 15 2002 10:58:00)
Copyright (C) 1995-2002 ATMEL Corporation
Creating 'avr.eep'
Creating 'avr.hex'
Creating 'avr.obj'
Creating 'avr.lst'
Creating 'avr.map'
Assembling 'C:\AVR\AVR.asm'
Program memory usage:
Code : 2 words
Constants (dw/db): 0 words
Unused : 0 words
Total : 2 words
Assembly complete with no errors.
Deleting 'avr.eep'


AVRASM ver. 1.57 C:\AVR\AVR.asm Mon Oct 17 22:22:19 2005


.LISTMAC
;===================== Раздел описаний =====================================
.EQU FLAG1 = 0
.EQU FLAG2 = 1
.EQU FLAG3 = 2
.EQU VALUE = 54
;-----------------------------------------------------------------------
.MACRO DEMO
ldi r16, @0
ldi r17, @1
.ENDMACRO
;===========================================================================



;================= Основная программа =======================================
000000 + DEMO (VALUE+10), (1<000000 e400 ldi r16, (value+0xa)
000001 e011 ldi r17, (0x1< .ENDMACRO
;===========================================================================
Assembly complete with no errors.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru