Hallo Forum
Habe mit macro ein problem.
arbeite mit avr-studio 4.18 und XP. uProcessor ist m128
nachfolgendes macro lief schon zig-mal ohne beanstandung
.macro gebtextaus ;1. para ist textadresse verw.Z + serout
ldi ZH,high(2*@0)
ldi ZL,low(2*@0)
nop
rcall txdstr
nop
.endmacro
nun kopierte ich dieses macro und erweiterte es so
.macro ERRorTextStor
nop
ldi ZH,high(2*@0) <<----dies ist zeile 47
mov tmp,ZH
sts @1,tmp
ldi ZL,low(2*@0)
mov tmp,ZL
sts @1,tmp
nop
sbr FlagR,(1<<errorflag)
nop
rcall txdstr
nop
.endmacro
und nun will der assembler nicht mehr mit nachfolgender meldung.
C:\xxxx.asm(47): error: syntax error, unexpected SYMBOL
das begreife ich nicht, kann da jemand mir helfen
Gruss
bastler4
Hi
>das begreife ich nicht, kann da jemand mir helfen
Normalerweise folgt bei den Fehlermeldungen noch eine Zeile mit der
Zeilennummer des Aufrufs. Die wäre auch interessant, da der Fehler auch
dort liegen kann.
MfG Spess
Hallo Spess53
vielen Dank für die schnelle Reaktion
hier die vollständige Fehlermeldung
---------------------
Copyright (C) 1995-2009 ATMEL Corporation
C:\PROJEKTE\Saege_bs2\saeg2.asm(5): Including file
'C:\Projekte\Saege_bs2\m128_iv_init.asm'
C:\Projekte\Saege_bs2\m128_iv_init.asm(154): Including file
'C:\Programme\Atmel\AVR Tools\AvrAssembler2\Appnotes\m128def.inc'
C:\Projekte\Saege_bs2\m128_iv_init.asm(47): error: syntax error,
unexpected SYMBOL
C:\PROJEKTE\Saege_bs2\saeg2.asm(414): info: macro 'ERRorTextStor' called
here
Assembly failed, 1 errors, 0 warnings
-----------------------------
hier zeile 414
ERRorTextStor tzeitueberlauf MASCHINENERROR_a
und nochmals das macro
---------------------------
;1. para ist textadresse 2. ist ziel z.bsp. MASCHINENERROR_a
.macro ERRorTextStor
nop
ldi ZH,high(2*@0) <<<<<<<<<<<<-----dies ist zeile 47
mov tmp,ZH
sts @1,tmp
ldi ZL,low(2*@0)
mov tmp,ZL
sts @1,tmp
nop
sbr FlagR,(1<<errorflag)
nop
rcall txdstr
nop
.endmacro
-----------------------------------------
warum geht ldi ZH,high(2*@0) einmal anstandslos und mit 2 Parametern
nicht mehr. als Vergleich das ausgangs-macro wo es funzt
-----------------
.macro gebtextaus ;1. para ist textadresse
ldi ZH,high(2*@0)
ldi ZL,low(2*@0)
nop
rcall txdstr
nop
.endmacro
--------------------
mit freundlichem Gruß
fritz (bastler4)
Hi >hier zeile 414 >ERRorTextStor tzeitueberlauf MASCHINENERROR_a und wie ist 'tzeitueberlauf' definiert? MfG Spess
Hallo Spess53 tzeitueberlauf ist eine Flash-Speicher-Adresse, wo der Text per .db " dis ist ein text ",10,13,0 hinterlegt ist MASCHINENERROR_a ist dagegen eine sram- speicherstelle per MASCHINENERROR_a: .byte 2 ;erzeugt ------ ich habe den Inhalt des macros an die ursprüngliche zeile kopiert und @0 @1 durch richte Namen ersetzt, so wie es eigentlich der compiler macht (machen sollte) und es geht ohne Warnung zu compilieren. ---das macht die Sache für mich nicht durchsichtiger. Um sicherzugehen,dass sich nicht ein unsichtbares Steuerzeichen das den compiler verwirrt (hatte ich schon mal vor längerer Zeit) in den macro-text eingeschlichen hat,habe ich beide macros in eine seperate Datei kopiert und mit UltraEdit im hex-modus angesehen, konnte aber nichts derartiges entdecken! mit freundlichem Gruß fritz (bastler4)
Hi >hier zeile 414 >ERRorTextStor tzeitueberlauf MASCHINENERROR_a ^ Da fehlt ein Komma. MfG Spess
Hallo Spess53 peinlich peinlich,einfach nur peinlich. ich schäme mich. entsinne mich dunkel, daß sowas schon mal war. Ihnen großes Lob und Dank, auch für die schnelle Antwort. Darf ich fragen, was Sie beruflich machen ? mit freundlichem Gruß Fritz
Hi
>Darf ich fragen, was Sie beruflich machen ?
Ich arbeite in einer kleineren Elektronikfirma.
MfG Spess
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.