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
>;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
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. ...
@hannes
>Warum soll "jmp Abfrage" beim Mega16 falsch sein?
ja, da war ich wohl etwas voreilig. ich sollte mir angewöhnen, alles
durchzulesen....
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.