www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik unexpected REGDEF - z-pointer einrichten - icall / ijmp


Autor: Rouven Zer (samtox2)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.