Forum: Mikrocontroller und Digitale Elektronik AVR-Studio 4.11 Build401


von crazy horse (Gast)


Lesenswert?

.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'

von A.K. (Gast)


Lesenswert?

> .macro timer_mid
>   rcall timer_mid
> .endmacro

Macroname == Functionname. Nix gut.

von crazy horse (Gast)


Lesenswert?

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.

von mmerten (Gast)


Lesenswert?

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.

von crazy horse (Gast)


Lesenswert?

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.

von Sebastian Wille (Gast)


Lesenswert?

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

von mmerten (Gast)


Lesenswert?

@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.

von mmerten (Gast)


Lesenswert?

@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.

von Sebastian Wille (Gast)


Lesenswert?

Hi mmerten,

ah, das ist ein guter Tip, wird gleich morgen ausprobiert, vielen Dank!
:-)

Sebastian

von Condor (Gast)


Lesenswert?

hallo

woher hast du die aktuellen Version von AVR Studio 4.11.406 Service
Pack 2 ?

auf der homepage ist nur bild 401

von mmerten (Gast)


Lesenswert?


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
Noch kein Account? Hier anmelden.