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.