www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik assember


Autor: Marc (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
ich folgendes kleines Programm geschrieben und beim simuliern im AVR
Studio kommt immer eine Fehlermeldung. Das programm scheint aber zu
laufen. Kann mir die Fehlermeldung erklären ? (asm Datei als anhang)

.include "m16def.inc"
.equ  port_als_ausg  =  0xff
.equ  port_als_eing  =  0x00
.equ  anfangswert    =  255
.def  zaehlregister  =   r23
.def  temp      =  r16


main:
; Einrichten des Stapels

   ldi temp, LOW(RAMEND)
    out SPL  , temp
    ldi temp, HIGH(RAMEND)
    out SPH  , temp



;Port C zum Eingang machen:

  ldi temp,port_als_eing
  out DDRC,r17

;PORT D zum Ausgangmachen:

  ldi temp,port_als_ausg
  out DDRD,r17

Abfrage:

;Abfrage der PINs an Port C


  sbis   PINC,0
  rcall   Fall1

  sbis  PINC,1
  rcall  Fall2

  jmp Abfrage
Fall1:
  ret

Fall2:
  ret


Fehlermedung im AVR Studio:


Loaded plugin STK500
Loaded plugin Atmel AVR Assembler
Loaded partfile: C:\Programme\Atmel\AVR
Tools\PartDescriptionFiles\ATmega16.xml
Loaded plugin Atmel AVR Assembler
Loaded partfile: C:\Programme\Atmel\AVR
Tools\PartDescriptionFiles\ATmega16.xml
Loaded plugin Atmel AVR Assembler
Loaded partfile: C:\Programme\Atmel\AVR
Tools\PartDescriptionFiles\ATmega16.xml
Loaded plugin Atmel AVR Assembler
Loaded partfile: C:\Programme\Atmel\AVR
Tools\PartDescriptionFiles\ATmega16.xml
AVR Simulator: Please wait while configuring simulator...
AVR Simulator: ATmega16 Configured OK
Loaded objectfile: D:\Eigene Dateien
(D)\Schule\TAR\AVRStudio\Programm\TAR\TAR.obj
AVR Simulator: Invalid opcode 0xffff at address 0x000008
AVR Simulator: Invalid opcode 0xffff at address 0x000008
AVR Simulator: Invalid opcode 0xffff at address 0x000008
Loaded objectfile: D:\Eigene Dateien
(D)\Schule\TAR\AVRStudio\Programm\TAR\TAR.obj
AVR Simulator: Invalid opcode 0xffff at address 0x00d0d0
AVR Simulator: Invalid opcode 0xffff at address 0x0010d1
AVR Simulator: Invalid opcode 0xffff at address 0x00d0d0
AVR Simulator: Invalid opcode 0xffff at address 0x0010d1
AVR Simulator: Invalid opcode 0xffff at address 0x00d0d0
AVR Simulator: Invalid opcode 0xffff at address 0x0010d1
AVR Simulator: Invalid opcode 0xffff at address 0x00d0d0
AVR Simulator: Invalid opcode 0xffff at address 0x0010d1
Loaded objectfile: D:\Eigene Dateien
(D)\Schule\TAR\AVRStudio\Programm\TAR\TAR.obj
AVR Simulator: Invalid opcode 0xffff at address 0x00d0d0
AVR Simulator: Invalid opcode 0xffff at address 0x0010d1
AVR Simulator: Invalid opcode 0xffff at address 0x00d0d0
AVR Simulator: Invalid opcode 0xffff at address 0x0010d1
Loaded objectfile: D:\Eigene Dateien
(D)\Schule\TAR\AVRStudio\Programm\TAR\TAR.obj
AVR Simulator: Invalid opcode 0xffff at address 0x00d0d0
AVR Simulator: Invalid opcode 0xffff at address 0x0010d1
AVR Simulator: Invalid opcode 0xffff at address 0x00d0d0
AVR Simulator: Invalid opcode 0xffff at address 0x0010d1
Loaded objectfile: D:\Eigene Dateien
(D)\Schule\TAR\AVRStudio\Programm\TAR\TAR.obj
AVR Simulator: Invalid opcode 0xffff at address 0x00d0d0
AVR Simulator: Invalid opcode 0xffff at address 0x0010d1
AVR Simulator: Invalid opcode 0xffff at address 0x00d0d0
AVR Simulator: Invalid opcode 0xffff at address 0x0010d1
AVR Simulator: Invalid opcode 0xffff at address 0x00d0d0
AVR Simulator: Invalid opcode 0xffff at address 0x0010d1
AVR Simulator: Invalid opcode 0xffff at address 0x00d0d0
AVR Simulator: Invalid opcode 0xffff at address 0x0010d1
AVR Simulator: Invalid opcode 0xffff at address 0x00d0d0
AVR Simulator: Invalid opcode 0xffff at address 0x0010d1
Loaded objectfile: D:\Eigene Dateien
(D)\Schule\TAR\AVRStudio\Programm\TAR\TAR.obj
AVR Simulator: Invalid opcode 0xffff at address 0x00d0d0
AVR Simulator: Invalid opcode 0xffff at address 0x0010d1
Loaded objectfile: D:\Eigene Dateien
(D)\Schule\TAR\AVRStudio\Programm\TAR\TAR.obj

Autor: Klaus Bröntgen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>;Port C zum Eingang machen:
>
> ldi temp,port_als_eing
> out DDRC,r17

geht schonmal nicht, muß dann "out ddrc,temp" heißen; anderer port
ebenso

>sbis   PINC,0
>  rcall   Fall1

da weiß ich auch immer nicht, wann es "sbis" oder "sbrs" heißen
muß. ggf. ausprobieren

>jmp Abfrage
geht gar nicht, muß "rjmp" heißen

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum soll "jmp Abfrage" beim Mega16 falsch sein?

Bei Portc beachten, dass das JTAG-Interface einzelne Bits des Ports
blockiert. Dafür gibt es aber das Bit JTD in einem der
MCU-Steuerregister.

Übrigens:
Doppelklick auf eine Fehlermeldung markiert im Quelltext die
Fehlerzeile. Immer mit der ersten Fehlermeldung beginnen, denn ein
Fehler (z.B. vergessener Doppelpunkt bei Label) kann weitere
Fehlermeldungen provozierien, zu denen garkeine Fehler existieren.

...

Autor: Klaus Bröntgen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@hannes
>Warum soll "jmp Abfrage" beim Mega16 falsch sein?

ja, da war ich wohl etwas voreilig. ich sollte mir angewöhnen, alles
durchzulesen....

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.