.macro timer_lower ldi timer_max,@1 ldi lower_on, @2 .if @0==0 rcall timer_update_inc .else rcall timer_update .endif .endmacro .macro timer_mid ldi timer_max,@1 ; hier entstehen u.g. der Fehler ldi lower_on, @2 .if @0==0 rcall timer_mid_inc .else rcall timer_mid .endif .endmacro 2 einfache Macros A15: timer_lower 1, 150, 10 timer_mid 1, 20, 30 timer_mid 0, 60, 70 so aufgerufen. Hat immer funktioniert (mit 4.08), gestern hatte ich mir V4.11 installiert und wollte ein paar kleine Änderungen an einem altem Programm (AT90S1200 :-) machen, nichts geht, ich bin echt am verzweifeln. Sieht einer mehr als ich? Spasseshalber habe ich sie mal verschoben, also macro timer_mid vor timer_lower, ändert nichts, der Fehler bleibt bei timer_mid. 107_amrum_kl.asm(79): error: Missing macro argument: @1 107_amrum_kl.asm(79): error: syntax error, unexpected '\n'
> .macro timer_mid > rcall timer_mid > .endmacro Macroname == Functionname. Nix gut.
tja, manchmal hilft ein kleines Bierchen ja doch :-) das Problem lag daran, dass es sowohl ein macro timer_mid als auch ein UP timer_mid gab. Die alten Assembler hat es nicht gestört (geschrieben war es irgendwann mit 3.irgendwas), ich habs nicht mal gemerkt. Stellt sich allenfalls die Frage, warum es plötzlich bekrittelt wird?? Na ja, AVR-studio wird wohl eine ewige Baustelle bleiben. Ich habe es mir nur installiert, weil der Tiny2313 bei der 4.08er nur im ISP-Modus gebrannt werden konnte (Reset-fuse lässt grüssen...), aber das geht jetzt mit der neuen Version parallel.
Beim Studio 4.11 sind doch beide Assembler-Varianten 1.x und 2.x mit dabei. Bei "problematischen" alten Quellcodes kann man diese mit der 1.x Version übersetzen.
hast du es mal probiert mit Assembler V1? Eine Schattenoption, würde ich sagen, zumindest funktioniert es bei mir nicht, stellt sich bei jedem build auf V2 zurück... Aber ich will nicht weiter rumsabbern, habs ja irgendwie selbst verschludert. Und für 0Euro Programmkosten gibts ja eigentlich sowieso nichts zu meckern.
Hi, ich habe das Problem, daß der 4.11 den Befehl "movw" wohl nicht mehr will. Hat das auch von Euch schon jemand beobachtet? Mit 4.08 ging's, mit 4.11 nicht mehr. Jetzt nehme ich halt 2x mov, naja... Sebastian
@crazy horse habe ich, kann man für jedes Projekt definitiv einstellen ob 1.xx oder 2.xx. Auch die Default Voreinstellung läßt sich konfigurieren zumindest in der aktuellen Version von AVR Studio 4.11.406 Service Pack 2 Und mittlerweile ist der AVR ASM 2.xx doch ein erheblicher Fortschritt in die richtige Richtung und über den Atmel Support kann man wirklich nicht meckern. Bei vollständigen dokumentierten Fehlern wird dort umgehend nach einem Lösungsweg gesucht bzw. ein Workaround angeboten.
@Sebastian movw funktioniert bei entsprechendem Controller nach wie vor. Bitte auf die Unterschiede zwischen ASM Version 1.x und 2.x achten. Die neue Version 2.x ist default hat aber stark erweiterte include files zur Prozessor-Deklaration. Hier wird unter anderem durch #pragma Direktiven der unterstützte Befehlssatz festgelegt. Bei der 1.xx reichte hierzu die .device Direktive allein.
Hi mmerten, ah, das ist ein guter Tip, wird gleich morgen ausprobiert, vielen Dank! :-) Sebastian
hallo woher hast du die aktuellen Version von AVR Studio 4.11.406 Service Pack 2 ? auf der homepage ist nur bild 401
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.