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.