assember

Gast #273227
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
Angehängte Dateien:
Gast #273228
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
#273229
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.

...

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.