PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : .byte Befehl verursacht Fehler bei Simulation mit AVR Studio



Micha G.
11.11.2006, 20:59
Hi,

ich benutze zum Programmieren in Assembler das Programm myAVR Workpad und zum similieren das AVR Studio 4. Da ich jetzt ein paar Bytes brauche um Daten aus dem SRAM auszulesen bin ich am definieren eines Bytes (.byte) hängen geblieben :cry: . Na ja bei der Simulation stand immer da AVR Simulator: Invalid opcode 0x00bf at address 0x000017 sehr komisch.
Wenn ich das .byte lösche geht alles wunderbar also ligt es 100% an diesem einem Befehl. Suche im Internet ergab leider keine richtige Lösung. Wenn mir mir jemand Helfen kann wäre das richtig super.

Viele Grüße Micha :-k

P.S. der Code erfüllt keine Funktion is nur zum Testen nicht wundern



.include "AVR.h"

daten: .byte 10
;------------------------------------------------------------------------
;Reset and Interrupt vector ;VNr. Beschreibung
begin: rjmp main ;1 POWER ON RESET
reti ;2 Int0-Interrupt
reti ;3 Int1-Interrupt
reti ;4 TC2 Compare Match
reti ;5 TC2 Overflow
reti ;6 TC1 Capture
reti ;7 TC1 Compare Match A
reti ;8 TC1 Compare Match B
reti ;9 TC1 Overflow
reti ;10 TC0 Overflow
reti ;11 SPI, STC Serial Transfer Complete
reti ;12 UART Rx Complete
reti ;13 UART Data Register Empty
reti ;14 UART Tx Complete
reti ;15 ADC Conversion Complete
reti ;16 EEPROM Ready
reti ;17 Analog Comparator
reti ;18 TWI (I²C) Serial Interface
reti ;19 Store Program Memory Ready
;------------------------------------------------------------------------
;Start, Power ON, Reset
main:

ldi r16,lo8(RAMEND)
out SPL,r16
ldi r16,hi8(RAMEND)
out SPH,r16
;------------------------------------------------------------------------
mainloop:
wdr
rjmp mainloop

JanB
11.11.2006, 23:00
.Byte geht nicht im Codesegment.
Da sollte eigentlich schon der Assembler drüber meckern.
Deine Interupt Vectoren wären ja dann auch alle an der falschen Stelle.

Probier es mal mit:
.dseg
daten: .byte 10
und dann noch .cseg,
wenn du die .Byte Anweisung unbedingt an Anfang haben willst.

Gruß Jan

Micha G.
11.11.2006, 23:19
Hi,

glaub habe den Fehler gefunden die Def Anweisung muß doch unter die Interrupt Vectoren hab nur ein Beispiel von einem Kumpel und da stand das so drin :Haue mein Fehler kam mir schon komisch vor und ich hab auch gedacht die Daten stehen im Datenspeicher na ja man soll halt doch erst das Hirn einschalten und dann schreiben 8-[

P.S. .dseg und .cseg kennt Workpad gar nicht. Trotzdem Danke für deine Hilfe

Viele Grüße Micha