Hallo zusammen!
Ich will gerade den Befehl icall nutzen um ein menü einzurichten.
Habe allerdings anscheinend ein Problem mit zl und zh.
AVRStudio gibt mir immer den Fehler "syntax error, unexpected REGDEF"
aus.
Könnte da mal jemand einen Blick darauf werfen, wo ich da etwas falsch
mache?
Hier der komplette code:
---------------------------CODE ANFANG-------------------------------
.include "m162def.inc"
.def dashier = r16
ldi dashier, 0x02
;----in der nächsten Zeile wird der Fehler angezeigt----
ldi zl,low (dashier*2) ;hier z.B. 0x02 statt "dashier*2 oder
ldi zh,high(dashier*2) ;"dashier", dann gehts ohne Fehler.
;Allerdings kann ich damit nicht anfangen
icall ;auch mit ijmp ändert sich nichts
ret
punkt1:
nop
ret
punkt2:
nop
ret
punkt3:
nop
ret
dashier:
rjmp punkt1
rjmp punkt2
rjmp punkt3
ende: rjmp ende
---------------------------CODE ENDE--------------------------------
MFG
Samtox
Du musst den Z-Pointer mit einer Konstante laden, nicht mit einer Variable. Die Konstante ist das Label, an dem deine Sprungtabelle beginnt. Und das *2 ist wohl auch nur bei LPM nötig, da hier der wordweise organisierte Flash byteweise angesprochen werden muss. Bei IJMP/ICALL wird der Flash wordweise angesprochen. Siehe: http://www.hanneslux.de/avr/stopuhr/index.html oder http://www.hanneslux.de/avr/zuenduhr/index.html Die Steuerung des Menüs müsste in beiden Codes zu finden sein. ...
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.